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 - "init"
-
My 9 year old son checks out the source code of every website he visits. If he finds something he doesn't understand, he bounces it off me. I love the snot outta that kid ❤️❤️❤️.20
-
mkdir new_project
cd new_project
git init
**Reflecting on my life and current workload**
cd ..
rm -rf new_project.3 -
I have the house all to myself. Twenty years ago, I'd be throwing a party. Today I look forward to all the uninterrupted coding.9
-
Fuck StackOverflow users who edit their question to include your answer.
Q: How to do X?
A: You need to init the Flufloxinator.
Q: How to do X? I've tried with a Flufloxinator but couldn't get it to work.
A: You need to init the Flufloxinator. Here's a fully working demo (pulled directly from the docs you clearly didn't read.)
Q: How to do X? Nevermind, I just had to init the Flufloxinator.9 -
*has finals to study for*
Me: I could study... Or I could write my website..
*create new project*
'git init'5 -
New rant = Rant.type(['non-dev', 'public transportation']).init()
So i am taking the bus now to see a friend, and this fucking whale woman comes on board with a baby caddy, except, it wasn't for a baby, but for a fucking dog the size of a brick. That already in itself makes me grumble because dogs have fucking legs and there is no fucking real need to carry them around like newborns.... Anyways this woman sits and takes up a lot of space for the 'handicapped' persons for her fucking baby dog... So far no real issue there since people with disabilities hardly get on this bus line. A fzw bus stops later an equally whale black woman gets on the bus, obviously struggling with her size and her caddy filled with groceries...
There is enough room to accomodate the baby caddy and her groceries.
That fucking white whale says to her 'there is no room there, move someplace else'... The black woman stands there in disbelief, and this is the first time i look up, giving the 'the fuck you just say bitch' look to the white whale. I mention there is enough room and the black whale sits carefully next to the dog caddy.
Now the bus takes a sharp turn, the dog caddy tips over due to the g-forces it causes...and inmediately this white whale shouts to the black whale 'fucking retard, don't tip my dog over!' this while the black woman apologises for the fall of the caddy not even being her fault...
This angered me so puch that i rantzd to this woman: 'madam, thzre is such a thing called physics, the bus made a sharp turn and your stupud useless space-wasting dog caddy tipped over bzcause of that. Don't just go accusing people for your own degenerate racist lifestyle. I suggest you hold on to it and apologise to the lady'
She then murmles incomprehensibly and gives a butthurt look, rhe black woman thanks me and tries to remain very quiet on her seat, eventually she gets off
This fucking thing makes me angry to a level i wanna toeturz that whale by peeling off her skin with garden fence metal wiri g, suck the fat out of her body and brain with an industrial vacuum cleaner and put her in the fucking oven baking in her own fat, of course without any anesthetics...
Damnit all to hell!
Also, why on earth do dogs need caddy's? They got perfectly fine legs!
I know, sadist inside11 -
fork() can fail: this is important
Ah, fork(). The way processes make more processes. Well, one of them, anyway. It seems I have another story to tell about it.
It can fail. Got that? Are you taking this seriously? You should. fork can fail. Just like malloc, it can fail. Neither of them fail often, but when they do, you can't just ignore it. You have to do something intelligent about it.
People seem to know that fork will return 0 if you're the child and some positive number if you're the parent -- that number is the child's pid. They sock this number away and then use it later.
Guess what happens when you don't test for failure? Yep, that's right, you probably treat "-1" (fork's error result) as a pid.
That's the beginning of the pain. The true pain comes later when it's time to send a signal. Maybe you want to shut down a child process.
Do you kill(pid, signal)? Maybe you do kill(pid, 9).
Do you know what happens when pid is -1? You really should. It's Important. Yes, with a capital I.
...
...
...
Here, I'll paste from the kill(2) man page on my Linux box.
If pid equals -1, then sig is sent to every process for which the calling process has permission to send signals, except for process 1 (init), ...
See that? Killing "pid -1" is equivalent to massacring every other process you are permitted to signal. If you're root, that's probably everything. You live and init lives, but that's it. Everything else is gone gone gone.
Do you have code which manages processes? Have you ever found a machine totally dead except for the text console getty/login (which are respawned by init, naturally) and the process manager? Did you blame the oomkiller in the kernel?
It might not be the guilty party here. Go see if you killed -1.
Unix: just enough potholes and bear traps to keep an entire valley going.
Source: https://rachelbythebay.com/w/2014/...12 -
I'm not angry, mostly sad.
At my workplace we don't use git.
There are constant overwriting, sending code via email or USB stick and forgetting passwords to zip-files shenanigans going on.
I already use git for all my local projects (literally git init in the directory) but my coworker and I thought that it would be a great idea to have a local server with a Gitlab running on it.
So I started looking into running a self-hosted Gitlab (for about 15 minutes) and then our boss who was sitting right next to me almost shouted at us: "Such stuff should be coordinated with the boss! We don't just do something and burn my money because it's _cool_!"
No, git is not cool, it's necessary for crying out loud! Gitlab is cool but at the end of the day also just another tool too.
I guess I have some persuasion to do.
I don't know what version control has done to our boss that he has such a deep dislike for it.9 -
I'm such an idiot!
For a while now, my machine has been kinda sluggish.
Just installed VSCode and a little popup saying that git was tracking too many changes in my home directory. I must've ran `git init` at some point and it's spent fucking forever tracking changes of >3,000 files.
`rm -rf .git/`
Quick. As. Fuck.8 -
*deploys new VPS*
Click clack tap.. alright, done.
*notices that I accidentally made an Ubuntu 14.04*
Well shit... Guess I'll have to update that immediately to 18.04 then.
*logs in, immediately disables SSH password auth*
# systemctl restart sshd
> systemctl: command not found.
What the fuck..?
What was the command for that old init again.. >_<
# /etc/init.d/ssh restart
WHY THE FUCK IS THIS UBUNTU STILL USING THAT OLD INIT?!! Goddamit, Canonical living up to the philosophy of its Debian counterpart indeed!11 -
Rant Init...
That moment you write some magnificent code and everyone is sleeping so you can't share it with anyone but you feel like the room should turn into an exciting musical where you win an award. (Best code can ONLY be written between the hours of 12am and 6am)
The next day, you try to explain to your significant other (user) how amazing this new genius way of doing that "thing" was, in hopes of sharing your excitement but all you get is a "you're such a dork" instead.
You may even try to share it with a coworker or fellow programmer but somehow they just don't see how exciting it is for you.
Rant completed...7 -
This rant is particularly directed at web designers, front-end developers. If you match that, please do take a few minutes to read it, and read it once again.
Web 2.0. It's something that I hate. Particularly because the directive amongst webdesigners seems to be "client has plenty of resources anyway, and if they don't, they'll buy more anyway". I'd like to debunk that with an analogy that I've been thinking about for a while.
I've got one server in my home, with 8GB of RAM, 4 cores and ~4TB of storage. On it I'm running Proxmox, which is currently using about 4GB of RAM for about a dozen VM's and LXC containers. The VM's take the most RAM by far, while the LXC's are just glorified chroots (which nonetheless I find very intriguing due to their ability to run unprivileged). Average LXC takes just 60MB RAM, the amount for an init, the shell and the service(s) running in this LXC. Just like a chroot, but better.
On that host I expect to be able to run about 20-30 guests at this rate. On 4 cores and 8GB RAM. More extensive migration to LXC will improve this number over time. However, I'd like to go further. Once I've been able to build a Linux which was just a kernel and busybox, backed by the musl C library. The thing consumed only 13MB of RAM, which was a VM with its whole 13MB of RAM consumption being dedicated entirely to the kernel. I could probably optimize it further with modularization, but at the time I didn't due to its experimental nature. On a chroot, the kernel of the host is used, meaning that said setup in a chroot would border near the kB's of RAM consumption. The busybox shell would be its most important RAM consumer, which is negligible.
I don't want to settle with 20-30 VM's. I want to settle with hundreds or even thousands of LXC's on 8GB of RAM, as I've seen first-hand with my own builds that it's possible. That's something that's very important in webdesign. Browsers aren't all that different. More often than not, your website will share its resources with about 50-100 other tabs, because users forget to close their old tabs, are power users, looking things up on Stack Overflow, or whatever. Therefore that 8GB of RAM now reduces itself to about 80MB only. And then you've got modern web browsers which allocate their own process for each tab (at a certain amount, it seems to be limited at about 20-30 processes, but still).. and all of its memory required to render yours is duplicated into your designated 80MB. Let's say that 10MB is available for the website at most. This is a very liberal amount for a webserver to deal with per request, so let's stick with that, although in reality it'd probably be less.
10MB, the available RAM for the website you're trying to show. Of course, the total RAM of the user is comparatively huge, but your own chunk is much smaller than that. Optimization is key. Does your website really need that amount? In third-world countries where the internet bandwidth is still in the order of kB/s, 10MB is *very* liberal. Back in 2014 when I got into technology and webdesign, there was this rule of thumb that 7 seconds is usually when visitors click away. That'd translate into.. let's say, 10kB/s for third-world countries? 7 seconds makes that 70kB of available network bandwidth.
Web 2.0, taking 30+ seconds to load a web page, even on a broadband connection? Totally ridiculous. Make your website as fast as it can be, after all you're playing along with 50-100 other tabs. The faster, the better. The more lightweight, the better. If at all possible, please pursue this goal and make the Web a better place. Efficiency matters.9 -
Systemd, I fucking love you. When a service crashes, let's just keep it turned off, don't restart it on your own, no need for that. That's what statefulness means, right Poettering? Such an amazing init, well worth the quarter GB of code or however much it is now. And yes I know that the unit files can be edited to achieve that. But seriously, should I really have to do that for each individual service on each individual box, because systemd can't do it on its own?
That feeling when an init system is (relatively) decent at doing everything else it absorbed into itself, yet fucking sucks at being.. a goddamn init. Good game Poettering. Such an amazing init system you wrote there. God fucking dammit man.. how hard can it be? There's OpenRC and BSD's /etc/rc.conf which are literally mere kilobytes of scripts and they do both statefulness and parallelization (in case of OpenRC anyway) *excellently*. Yet systemd can't even do that much? Awesome. Great init. I love it.
Come fucking on man...20 -
Method 1:
1. Read others' people answers on wk70
2. Apply
3. ???
4. Profit
Method 2:
1. cd <ProjectName>
2. git init
3. dotnet new sln
4. dotnet new console #or webapi/lib
5. code .
6. git commit -m "Initial commit"
7. git remote add origin <github link>
8. git push origin master -u
9. profit1 -
Hoozay! I'm now starting to become an adult! (or atleast, that's what they expect of me)
myAge:
.long 19
main:
push rbp
mov rbp, rsp
mov eax, DWORD PTR myAge[rip]
add eax, 1
mov DWORD PTR myAge[rip], eax
mov eax, DWORD PTR myAge[rip]
mov esi, eax
mov edi, OFFSET FLAT:_ZSt4cout
call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
mov eax, 0
pop rbp
ret
__static_initialization_and_destruction_0(int, int):
push rbp
mov rbp, rsp
sub rsp, 16
mov DWORD PTR [rbp-4], edi
mov DWORD PTR [rbp-8], esi
cmp DWORD PTR [rbp-4], 1
jne .L5
cmp DWORD PTR [rbp-8], 65535
jne .L5
mov edi, OFFSET FLAT:_ZStL8__ioinit
call std::ios_base::Init::Init() [complete object constructor]
mov edx, OFFSET FLAT:__dso_handle
mov esi, OFFSET FLAT:_ZStL8__ioinit
mov edi, OFFSET FLAT:_ZNSt8ios_base4InitD1Ev
call __cxa_atexit
.L5:
nop
leave
ret
_GLOBAL__sub_I_myAge:
push rbp
mov rbp, rsp
mov esi, 65535
mov edi, 1
call __static_initialization_and_destruction_0(int, int)
pop rbp
ret12 -
1. Needed to access an old SVN backup.
2. Didn't have an SVN client installed.
3. Realised GIT comes with an SVN proxy included.
Cool, I'll just quickly download the repository via SVN.
> git svn init
... git sequentially downloads each of the 1800+ revisions and applies them individually.
It's cool, I didn't want to do anything productive today anyway.3 -
I pranked my friends ex, nothing bad, just fun. First i screen shorted is desktop, flipped it and made it his new desktop. Then flipped the resolution, so my upsideiwn bf was cool. Lastly I change his mouse behavior, I set it for reversed.
Fun right? A typical person might get a lil pussy and have to fix it. Some might even fix it themselves. Regardless have a lil chuckle.
He smashes the monitor and keyboard, left them, both in a pile.3 -
Every time I try to git init ,and push the code to github,
I always forget the cmds to do it!
Every freaking time ,I have to google.14 -
1)Get Project/idea
2)Look for the most suitable tech
3)Draw out all the functionality
4)Break into milestones
5)git init
6) git commit
7) Start
8) Test
9) Complete
10) Feel like a King7 -
rant init....
I feel like the programming courses in college don't ready you enough for the outside world 😧 - computer science student.
rant complete....15 -
Recently I disassembled this Remington beard trimmer that I have, right. Thinking that I probably just depleted the battery or something like that, and that that's why the fucking thing would turn off after 10 seconds, with a miserable motor speed that could only be caused by what.. 2.5V or something like that? So I kept up with it for a while, and then a few days ago, I finally disassembled the fucking thing.
New 4.2V LiPo battery of my own attached, wicked! The thing has a 2Ah capacity and is fully charged, so fuck all in a big ship, I'ma shave my fucking hair without protection, who cares with 2Ah anyway, given that motors at 4.2V consume only 800-ish mA, right. So I shaved my head, and figured.. holy shit mate, I fucking beat this fucking cunt, fuck you Remington! Planned obsolescence my ass!!!
Just now @xewl sent me a request that made me reconsider this shaver. Some PS3 controller, should be easy enough to fix. But I referenced my shaver so I figured that I might actually check it beforehand.
The original fucking battery has 4V left on it. 4 fucking volts! That ain't gonna trip shit for an overdischarge protection circuit!!! WHY THE FUCK REMINGTON, WHY THE FUCK DID IT (IF ANYTHING) TRIP?! And more importantly, why did you make the motor turn for only 10-ish seconds after charging, 1 year after purchase, despite the fucking cell having 4 fucking volts in it, which is more than plenty to get the thing turning for at least a 60% charge?! Planned obsolescence perhaps, hmm?
But let's say that it was bad contacts or something like that. After all, my probing was a bit intermittent, showing 1.5V (if it's shorting, shouldn't it be in the mV range?) and then 4V at times, until I separated the nickel connectors from the 16500 cell. Why the fuck should that thing short, considering that it's unprotected?! The fucking cell is unprotected, and you Remington are going to let it short? What kind of fucking engineering is that, you fucking braindead morons?!!!
And why do you use a 16500 cell which isn't very standard over a 18650 cell, which is? Again, planned obsolescence? Fucking vile pieces of shit.
Now what's more.. I tried to power on the shaver for a picture for this fucking rant, using a LiPo cell of my own that I used to shave my hair with the other day, to get a nice picture of my little hack. But the fucking thing, despite having 3.89V left in it after that fucking shave, which is more than plenty for a lithium cell, the fucking unit doesn't power on. WHAT THE FUCK REMINGTON?!! That's planned obsolescence at its best, init?!! You vile fucking pieces of shit.
So I guess that this rant is no more one of "I beat these Remington cunts". It is one of "you can bet your fucking ass that planned obsolescence is a thing!!"7 -
Init and Hello. My name is git and this is my story.
I just arrived in this system recently by the apt highway. It's not the only way though. Some for example used the npm hype-train, others arrived from the ssh shore. No matter where we came from the next step on our agenda was time to introduce our self at the event destined for all new-comers to the system.
"As many of you I reside in the usr-bin district. I'm really into history and commitment! I like it when people work together, so I'm always eager to bring all branches together."
"But what is it actually good for?", asked Curl, which I already met at the bus station. Many nodded in agreement. It was odd. Somehow I felt not quite at home. All the others seemed so different based on their field of work.
"We have worked here in a really agile environment for ages. There is no need for any kind of strange bureaucracy.", said another voice.
All attempts to convince them from the beauty of history or a little bit of management were unsuccessful. It was just the beginning of a not so interesting stage in my life - to say the least.
Today was another of 'those' days. I live in this community for quiet a while now and unfortunately nothing really changed - at least for the good. I sat on my branch of the tree with all the others around and there was nothing really to do for me. Again. I mean, actually it's true. I have to admit it. There is just no work on this world for someone like me. All the others seem to be so busy, while I just have to sit around and question my own existence. Since I grew tired asking these questions to myself, I stopped it. I can't do a thing actually. That's not how this world works.
"Hey fagit, anything meaningful to add to our delightful conversation?", nginx shouted over to me from another branch of the tree. Before I was able to give an indifferent answer the voice just continued.
"Oh, sorry. I forgot that you have no purpose after all. Well, never mind!"
Everyone started laughing at me. It was not too bad by the way. Actually, this was quite ordinary. These fucktards completely ran out of creativity. If it wasn't for that mere emptiness gaping right above my guts, I'd actually be disappointed. I even got accustomed to the alias 'fagit'. Quiet sad given the fact that i really like my real name. If only someone would mind using it... First too quiet to notice but growing in intensity a rumbling emerged from somewhere deep within the tree. Out of a sudden everyone stopped laughing. The voices slowly faded while the growling from afar grew louder. It had come. Not more than a shadow reached out from the tree and faster than anyone could comprehend nginx was simply gone. Killed in an instance.
Disclaimer: This story is fictional. No systems were harmed in its creation.3 -
I have this project manager that is stuck in the 90s.
I have to constantly get their approval. I ask several questions in an email. I get only one question answered, the last one, everytime.4 -
Working with Android DatePicker is such a pain in the ass.
You want to have your DatePicker appearing as a SpinnerView? Well, easy!
If you're under API 21, you can use the following method 'setSpinnerViewShown()'. If you're between API 21 and API 23 you need to add some style configuration. And if you're above of API 23 you can't use both of the methods above, you need to create a custom xml with the attribute "datePickerMode" (no, datePickerMode can't be set programmatically, it would be too easy to guess).
If you want to add a listener to it, you think it might be a method called 'setDateChangeListener' or something like this? Well no! You must use the 'init(year, month, day, Listener)' method, logic!
If you think you're finished with this bullshit, of course not. Their is a known bug on API 21 that you must take into account (but this bug isn't fixed, no, it's just documented somewhere on google forums).
I don't know the team that designed the DatePicker for Android, but it might a team of champanzee that randomly changed their minds to the phases of the moon!3 -
School gave me 3 DigitalOcean droplets to try out Kubernetes in the cloud, awesome!
Wrote an Ansible script to not only simply install docker and add users but also add kubernetes, nice!
Oh wait, error?! Well I should've known this wasn't going to be easy... ah well no problem. Let's see... Ansible is cryptic as always, it can't connect to the API server? Is it even running?
Let's ssh to the master, ah nothing is running, great. Let's try out kubeadm init and see what happens, oh gosh, my Docker version has not been validated! No problem, let's just downgrade!
How do I do that? Oh I know, change the version in the role! Wait that version doesn't exit? Let's travel to Docker's website and see what versions exist of docker-ce, oh I see, it needs a subversion, no problem.
Oh that errors too? Wait then what... Oh I need a ~ and a ubuntu and a 0 somewhere, my mistake!
Let's run it again! Fails!
Same ssh process, oh wait...
Oh god no...
Kubernetes requires 2 cores and these things only have 1...
Welp, time to ask the teachers to resize my droplet by a small amount tomorrow, hopefully I'll get a new error!
----------------------------------------------
My adventure so far with Kubernetes. I'm not installing it for any serious/prod reason, just for educational purposes. K8s seems like 'endgame' to me, like one of the 'big guys' that big enterprises use so I'm eager to throw stuff at a droplet and see what happens.
Going further down the rabbit hole tomorrow!
Wish me luck :3
(And yes, I could've figured this all out beforehand with documentation, but this is more fun in my opinion)8 -
Enough is enough! I can't do it anymore!
...
alias pm='python manage.py'
alias ga='git add .'
alias gc='git commit -a'
alias gi='git init && touch .gitignore && printf ".idea \n venv \n node_modules \n out \n *.iml \n *.log \n build \n target" > .gitignore'
alias gp='git push'
alias gps='git push --set-upstream origin master'
alias gr='git remote add origin'
...
Much better :D12 -
1) Remove kernel linux
2) Change kernel to linux-zen
3) Make init ramdisk
4) Everythings great -> hit reboot
5) Stuck at Grub
Me: Fuck.. Forgot to update grub config.
(Lesson : RTFM first.)1 -
So I am conducting an introductory seminar on git and GitHub for juniors and as per my knowledge I've drafted this outline, please add your inputs..
The seminar will be of 1 day only
1. Install and configure Git and Github
2. Digital Signature mapping
3. Git init
4. New Project with HTML
5. Configure remote (git remote add <origin> <url>) ends with .git
6. Git commit (git commit –m “Title” –m “commit message”)
7. Pushing git push (git remote push origin master)
8. Git commit –amend
9. Git pull (git pull origin master)
10. Git checkout (git checkout –b new_branch_name)
11. Do some changes
12. Git push new branch (git remote push origin new_branch_name)
13. Git switch branch (git checkout <name_of_existing_branch>)
14. Pull requests
15. Git log (git log –oneline –graph)15 -
The hardest part of a new project is starting it. But it may also be the most exciting. The possibilities!7
-
Stares idly at computer screen for 30 mins, while Hybris is initializing.
Me: Aight might as well break for lunch since this is taking so long.
Hybris init finishes.
Fuck. -
Had this PM who would call me while intoxicated mid afternoon. He would come up with these random ideas, and request them be implemented into the web app we were building for him. One time he called me saying "I have an idea for a page, but so far just the page's title. I'll call you back and tell you what to put on it."5
-
I always wanted to try out `cd /; git init` for system recovery, but ironically always was afraid of ruining my system.5
-
Added a bond interface in my Proxmox installation for added cromulence, works, reboot again, works, reboot once more just to be sure, network down.. systemctl restart networking, successfully put the host's network back up.. lxc-attach 100, network in containers is still down apparently.. exit container, pct shutdown 100, pct start 100, lxc-attach again... Network now works fine in containers too.
Systemd's aggressive parallelization that likely tried to put the shit up too early is so amazing!
I'm literally almost crying in despair at how much shit this shitstaind is giving me lately.
Thank you Poettering for this great init, in which I have to manually restart shit on reboot because the "system manager" apparently can't really manage. Or be a proper init for that matter.
/rant
And yes I know that you've never had any issues with it. If you've got nothing better to say than that then please STFU. "Works for me" is also a rant I wrote a while back.12 -
I was 11-12, the year was 1995. My mom was so sick of me screwing up the business computer (286), she bought me an old XT at a garage sale. It had a monochrome monitor and a 40 kB HDD. I taught myself qbasic on it. I knew right there I wanted to build stuff in code for a living.
-
Welp, its official, with Debian Buster adoption into our mainline, we are officially switching from Sys-V-Init to SystemD.
I still do not know how I feel about it.
From the professional point of view - Its a relief. SystemD has so many more neat features that make the life of a sysadmin easier. If any, I love that it tracks the uptime of a service, making it incredibly easy the last time it crashed / restarted...
On the other... I just... Am kind of afraid where the whole systemd environment will go with time... And... I guess... I am also worried about how much systemd is taking over in the system itself... It will mean learning quite a few new services, debugging routines and such...
A new era of GNU/SystemD/Linux is upon us.15 -
PM asked me to make the code deeper, here's the new load script:
//Someone is born (init script and load deps, also run it)
$life = new begin_life();
//magic happens (generate random token)
$life->Living = openssl_random_pseudo_bytes(rand(), TRUE);
//We end it all
$life->die();3 -
I have never seen a more ass backwads debugger than the one in Automation Studio. Shits desinged to only debug the cyclical part of a program. Bitch! I need to debug the init part! You worthless pile of freshly minted horse shit!
-
Stickers made it to Niagara! Not the first set either, we have a solid dev community up here. Thanks for the stickers @dfox!1
-
TIL you can make the smallest implementation of Debian:
Use only busybox and APT
Remove sysd and use busybox init
Holy fucking shit, let's make this an actual distro and call it debsmol5 -
The moment when you are looking at code for a good 20 mins woundering why it isn't working then you realise you havent ran the init function...
-
OPEN SOURCE CONTRIBUTION
Original post link:
https://linkedin.com/feed/update/...
Start your open source journey.
To Push your personal project to GITHUB.
1. git init
2. git remote add origin [link]
3. git add .
4. git commit -m "commit message"
5. git push origin master
To contribute to someone else project use the following steps:
1. Fork the repo.
2. Clone the project in your local directory using git clone [link]
3. After clone, create a new branch. git branch [branch name]
4. Checkout to new branch created using: git checkout [new branch name]
5. Make changes in Project then 'git add' and 'commit'
6. Push back the changes using git push origin [newbranch name]
7. Open Github web view and click the pull request button and you are done.
Follow Up Post: https://lnkd.in/fEMbTPC
GitHub Link of GIT-CHEATSHEET: https://lnkd.in/fhy4hmu
HD VIDEO: https://lnkd.in/fmq8GTd5 -
1. Get an idea
2. Plan the structure to use overengineered solutions
3. $ git init
4. Setup the barebones
5. $ git commit -am "initial commit"
6. Forget the project for the next several months, until another idea pops out and you visit your github to setup a repo for the new project and rediscovers this miserable project's repo
7. Back to 1, repeat -
Friend asked me how to start a node server. I gave her starter code and told her to do “npm init” then “npm install” ur modules. This is what she did2
-
So recently I installed Windows 7 on my thiccpad to get Hyperdimension Neptunia to run (yes 50GB wasted just to run a game)... And boy did I love the experience.
ThinkPads are business hardware, remember that. And it's been booting Debian rock solid since.. pretty much forever. There are no hardware issues here. Just saying.
With that out of the way I flashed Windows 7 Ultimate on a USB stick and attempted to boot it... Oh yay, first hurdle to overcome. It can't boot in UEFI mode. Move on Debian, you too shall boot in BIOS mode now! But okay, whatever right. So I set it to BIOS mode and shuffled Debian's partitions around a bit to be left with 3 partitions where Windows could stick in one more.
Installed, it asks for activation. Now my ThinkPad comes with a Windows 7 Pro license key, so fuck it let's just use that and Windows will be able to disable the features that are only available for Ultimate users, right? How convenient would that be, to have one ISO for all the half a dozen editions that each Windows release has? And have the system just disable (or since we're in the installer anyway, not install them in the first place) features depending on what key you used? Haha no, this is Microsoft! Developers developers developers DEVELOPERS!!! Oh and Zune, if anyone remembers that clusterfuck. Crackhead Microsoft.
But okay whatever, no activation then and I'll just fetch Windows Loader from my webserver afterwards to keygen my way through. Too bad you didn't accept that key Microsoft! Wouldn't that have been nice.
So finally booted into the installed system now, and behold finally we find something nice! Apparently Windows 7 Enterprise and Ultimate offer a native NFS driver. That's awesome! That way I don't have to adjust my file server at all. Just some fuckery with registry keys to get the UID and GID correct, but I'll forgive it for that. It's not exactly "native" to Windows after all. The fact that it even has a built-in driver for it is something I found pretty neat already.
Fast-forward a few hours and it's time to Re Boot.. drivers from Lenovo that required reboots and whatnot. Fire the system back up, and low and behold the network drive doesn't mount anymore. I've read that this is apparently due to Windows (not always but often) mounting the network drive before the network comes up. Absolutely brilliant! Move out shitstaind, have you seen this beauty of an init Mr. Poet?
But fuck it we can mount that manually after every single boot.. you know, convenient like that. C O P E.
With it now manually mounted, let's watch a movie! I've recently seen Pyro's review on The Platform and I absolutely loved it. The movie itself is quite good too. Open the directory on my file server and.. oh. Windows.. you just put db.thumb on it and db.thumb:encryptable. I shit you not, with the colon and everything. I thought that file names couldn't contain colons Windows! I thought that was illegal in NTFS. Why you doing this in NFS mate? And "encryptable", am I already infected with ransomware??? If it wasn't for the fact that that could also be disabled with something as easy as a registry key, I would've thought I contracted ransomware!
Oh and sound to go with that video, let's pair up some Bluetooth headphones with that Bluetooth driver I installed earlier! Except.. haha nope. Apparently you don't get that either.
Right so let's just navigate the system in its Aero glory... Gonna need to flick the mouse for that. Except it's excruciatingly slow, even the fastest speed is slower than what I'm used to on Linux.. and it's jerky as hell (Linux doesn't have any of that at higher speed). But hey it can compensate for that! Except that slows down the mouse even more. And occasionally the mouse driver gets fucked up too. Wanna scroll on Telegram messages in a chat where you're admin? Well fuck you mate, let me select all these messages for you and auto scroll at supersonic speeds! And God forbid that you press delete with that admin access of yours. Oh maybe I'll do it for you, helpful OS I am!
And the most saddening part of it all? I'd argue that Windows 7 is the best operating system that Microsoft ever released. Yeah. That's the best they could come up with. But at least it plays le games!10 -
If Java versions can coexist on a system
If all java versions have their own packages on the AUR
If you can change envvars in a launch script and be sure that all processes of the application will persist your settings
Then why THE FUCK do package maintainers keep announcing to change the default java version to install their package, rather than explicitly doing that by themselves? Fuck off, do you really think yours is the only package that needs a specific Java version? Do you think each and every user will write their own init script, or edit the PKGBUILD to include the new version as an envvar in the desktop file? This is why Arch has a bad name, and they're fucking right. If you don't have the time to put a single motherfucking diff in the motherfucking pkgbuild to specify the java version in the desktop file, then don't fucking maintain the package. I know there are too few maintainers, but pretending to maintain a package while doing fuckall is much worse than leaving it unmaintained on the AUR so the first person who has time can pick it up.1 -
Init Mud. (A poem)
A Giant Ball of Mud.
Haphazard in structure.
A sprawling, enthralling, duct-taped warning,
Of things to come.
Tumbling down a well-worn path
Of untamed growth and aftermath.
Into Spaghetti-code Jungle.
Where quick and dirty wins the day
And warnings spoken hold no sway
Or fall on deaf ears in the undergrowth.
Tumbling.
Gaining weight.
Bits stuck on.
Bytes taken out.
Patches,
On top of patches,
On top of obsolescence.
Hacked at, uploaded
All elegance eroded.
Made and remade
Then duplicated
Relocated
Refined and redesigned
Suffocated by expedient repair after expedient repair
The original self no longer there
Replaced by something
Unwieldy.
Design resigned to undefined
An architectural mystery
Whose function can no longer be
Seen or gleaned
From obfuscated in-betweens
Of classes
Made and remade
Duplicated.
Abused.
A squirming library of disused.
Pulled at, prodded, committed
Corners cut and parts omitted.
Bug ridden branches fused to a rotting core.
The structure...
The system...
The content...
Mud.1 -
*me working at a huge company as a customer*
Ok, show me what you got.
* Company throws some of the most gruesome and ugly scripts at me*
HAVE YOU EVER HEARD THE WORD INIT SYSTEM? HAVE YOU EVER HEARD THE TERM PRIVILEGE SEPARATION OR BACKUP? DO YOU KNOW THAT A SVN REPO IS NOT SUPPOSED TO BE 500GB BIG? AND A JENKINS JOB SHOULD NOT RUN 8HOURS!
Company: you ain't have seen nothing yet.
And they were so right...almost can't bear it anymore3 -
Browsing various log files because I'm easily distracted. Found this masterpiece after running `grep "commit -m" ~/.zsh_history`
"init commit to GITHABS"
wtf, younger me?6 -
Bossman told me to give my project more hierarchy and to add all those weird __init__.py files.
I don,t quite like all those boring empty files, so anyone got some bri'ish language "innit?" jokes or other awful puns to add as comments?8 -
You know what's a good place for init Files? A standardized place...
A place, where one would expect it...
You know where isn't a good place
/usr/lib/systemd/{user,system}/
You know what is also a fuckin bright idea? Generic names....
Postgresql-10 is a rather anoying service name, if your plattform doesn't feature autocomplete for your plattform. Looking at no one. *Cough* centos *cough*
Well at least manpages for the service would have been nice...2 -
tfw 256MB isn't enough RAM to load a zImage from SD, decompress it elsewhere, then boot Linux on a 3DS. OOM panic when trying to init a null wlan driver.
so close yet so very fucking far2 -
Is it just me or is systemd 240 royally fucked up?
My containers running Arch don't get connected to the network and systemd-networkd fails to start. On my laptop, the network is also unable to connect sometimes. And it consistently fails to complete shutdown without hard poweroff. The only viable temporary solution was rolling back to a snapshot in ALA that still has 239. Is that really supposed to be how a critical system component like the init is supposed to behave and get taken care of its issues?
Fuck QA, amirite 🤪.. seriously, that's even worse than Windows' "features" 😒12 -
ZNC shenanigans yesterday...
So, yesterday in the midst a massive heat wave I went ahead, booze in hand, to install myself an IRC bouncer called ZNC. All goes well, it gets its own little container, VPN connection, own user, yada yada yada.. a nice configuration system-wise.
But then comes ZNC. Installed it a few times actually, and failed a fair few times too. Apparently Chrome and Firefox block port 6697 for ZNC's web interface outright. Firefox allows you to override it manually, Chrome flat out refuses to do anything with it. Thank you for this amazing level of protection Google. I didn't notice a thing. Thank you so much for treating me like a goddamn user. You know Google, it felt a lot like those plastic nightmares in electronics, ultrasonic welding, gluing shit in (oh that reminds me of the Nexus 6P, but let's not go there).. Google, you are amazing. Best billion dollar company I've ever seen. Anyway.
So I installed ZNC, moved the client to bouncer connection to port 8080 eventually, and it somewhat worked. Though apparently ZNC in its infinite wisdom does both web interface and IRC itself on the same port. How they do it, no idea. But somehow they do.
And now comes the good part.. configuration of this complete and utter piece of shit, ZNC. So I added my Freenode username, password, yada yada yada.. turns out that ZNC in its infinite wisdom puts the password on the stdout. Reminded me a lot about my ISP sending me my password via postal mail. You know, it's one thing that your application knows the plaintext password, but it's something else entirely to openly share that you do. If anything it tells them that something is seriously wrong but fuck! You don't put passwords on the goddamn stdout!
But it doesn't end there. The default configuration it did for Freenode was a server password. Now, you can usually use 3 ways to authenticate, each with their advantages and disadvantages. These are server password, SASL and NickServ. SASL is widely regarded to be the best option and if it's supported by the IRC server, that's what everyone should use. Server password and NickServ are pretty much fallback.
So, plaintext password, default server password instead of SASL, what else.. oh, yeah. ZNC would be a server, right. Something that runs pretty much forever, 24/7. So you'd probably expect there to be a systemd unit for it... Except, nope, there isn't. The ZNC project recommends that you launch it from the crontab. Let that sink in for a moment.. the fucking crontab. For initializing services. My whole life as a sysadmin was a lie. Cron is now an init system.
Fortunately that's about all I recall to be wrong with this thing. But there's a few things that I really want to tell any greenhorn developers out there... Always look at best practices. Never take shortcuts. The right way is going to be the best way 99% of the time. That way you don't have to go back and fix it. Do your app modularly so that a fix can be done quickly and easily. Store passwords securely and if you can't, let the user know and offer alternatives. Don't put it on the stdout. Always assume that your users will go with default options when in doubt. I love tweaking but defaults should always be sane ones.
One more thing that's mostly a jab. The ZNC software is hosted on a .in domain, which would.. quite honestly.. explain a lot. Is India becoming the next Chinese manufacturers for software? Except that in India the internet access is not restricted despite their civilization perhaps not being fully ready for it yet. India, develop and develop properly. It will take a while but you'll get there. But please don't put atrocities like this into the world. Lastly, I know it's hard and I've been there with my own distribution project too. Accept feedback. It's rough, but it is valuable. Listen to the people that criticize your project.9 -
Nothing ruins my day like having to touch up python scripts. I'm predominantly a Java dev and never learned Python properly so every time I do it its THE WORST2
-
mkdir new-shiny-app
cd new-shiny-app
git init
Decide on the stack, release the package manager on it to scaffold away. Everything still clean and pure.
One of those little joys of our job :) -
Below is a transcript from work Slack today. Only the names and some code are changed. It ended up causing a bit of drama. DevRanters, what do you take from this?
---
Delivery Lead:
Hey Gang. What's the blocker for FEATURE-123?
Dev1:
FEATURE-122 crashed on iOS app when viewing Feature Introduction page.
Teach Lead:
I've talked about this with Dev1 on a side channel.
And diagnosed the stack trace.
It looks like there is/was some bad handling of a List in the Feature Introduction view logic.
But this is confined to changes that Dev2 is still working on.
(It's not present in master)
Dev2, what's your current position on this?
Dev2:
I have tested at my end with Dev1 but it seems to be working fine
Tech Lead:
There is a race condition related to the use of someList.first()
My guess is that theres a Flow of those lists defined, with an initial value of emptyList
And that on your machine, that Flow is updating with a new value quickly enough that it doesn't matter.
But on Dev1's, for whatever reason, it doesn't get there in time, hits the empty list and falls over.
The logic that's performing the first() needs to gracefully handle empty lists as well.
Dev2:
Where is that logic called?
Tech Lead:
Here's the stack trace Dev1 provided in our conversation earlier:
Caused by: kotlin.NoSuchElementException: List is empty.
...
at 3 iosApp 0x00000000 kfun:kotlin.NoSuchElementException#<init>(kotlin.String?){} + 00
at 4 iosApp 0x0000000 kfun:kotlin.collections#first@kotlin.collections.List<0:0>(){0§<kotlin.Any?>}0:0 + 000
...
at 9 iosApp 0x0000000 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 0000
This line:
kfun:kotlin.collections#first@kotlin.collections.List<0:0>()
...says that it's first() being called on an empty list.
Dev1:
FYI: Dev3/Dev4/myself are seeing the same issue with the same stack-trace above.
Tech Lead:
So Dev2, have you introduced such a call?
Because I checked master branch and there isn't one, in that version of the file.
Ok, I'll check your working branch Dev2
...
Yes you have here:
var processed1 = someList.first()
var processed2 = someList.first()
...
Lines 123, 124.
Solution looks really straightforward guys.
Dev2:
Okay, I will fix that and push the change
Tech Lead:
Check if someList is empty and allow for generating / handling null processedValues in the view.
Now; I'm going to be straight with you here.
This issue has been discussed over several hours today.
I expect that either one of you could have gone through the process I did in the last 10 minutes above, and resolved it in the same way :point_up:
Dev2:
I went on a break and it's not reproducible on my machine
Tech Lead:
I didn't reproduce it on mine either.
Dev1:
Dev2 and myself are now on sharing screen to sort this issue out. Hope to update back later.
Tech Lead:
<Screen shot of diff with changed code>
:point_up: That change should do it.
Dev2:
Already have pushed the change.
Tech Lead:
...just seen it, is good - same approach :ok_hand:
Dev1 please let us know when tested on your machine.
Dev1:
That does it. It fixes the issues. Thank you, Dev2. I will pick it off from here.
Tech Lead:
Glad to hear it guys.
Dev1:
I have to say this that it is not because we are not working on the issue - Dev2 and myself (together with Dev3/Dev4) have been on this issue all this morning. It just difficult to connect the dot when it wasn't reproducable on Dev2's machine. I brought the issue up because I wanted to switch to working on other tickets while waiting for this to resolve. Still thank you largely for Dev2's work and your keen eyes that spot and resolve the issue quickly.
Tech Lead:
Noted Dev1.
I think the take-away has to be to read the stack-trace carefully... don't worry - we've all been guilty of not reading the error in full, at some point.
The stack trace said that the 'first' element is being referenced from an empty list - that's just logically impossible, right?
Looking for that call to first, we saw it wasn't in the code before, and is after (two of them, in fact).
So then we ask ourselves, how can we deal with an empty list - and then solution almost presents itself.
It didn't really take reproduction of the error to resolve.
Maybe working with a new tech stack creates an anxiety that every issue faced will have a complex solution related to that stack; but I think you'll agree, this particular issue really just required a deep breath and your trusty 'debugging skills 101'... don't lose them! :smiling_face:4 -
Time for a rant about shitstaind, suspend/hibernate, and if there's room for it at the end probably swappiness, and Windows' way of dealing with this.
So yesterday I wanted to suspend my laptop like usual, to get those goddamn fans to shut up when I'm sleeping. Shitstaind.. pinnacle of init systems.. nope, couldn't do it. Hibernation on the other hand, no problem mate! So I hibernated the laptop and resumed it just now. I'm baffled by this.
I'll oversimplify a bit here (but feel free to comment how there's more to it regardless) but basically with suspend you keep your memory active as well as some blinkenlights, and everything else goes down. Simple enough.. except ACPI and I will not get into that here, curse those foul lands of ACPI.
With hibernation you do exactly the same, but on top of that, you also resume the system after suspending it, and freeze it. While frozen, you send all the memory contents to the designated swap file/partition. Regarding the size of the swap file, it only needs to be big enough to fit the memory that's currently in use. So in a 16GB RAM system with 8GB swap, as long as your used memory is under 8GB, no problem! It will fit. After you've moved all the memory into swap, you can shut down the entire system.
Now here's the problem with how shitstaind handled this... It's blatantly obvious that hibernation is an extension of suspend (sometimes called S3, see e.g. https://wiki.ubuntu.com/Kernel/...) and that therefore the hibernation shouldn't have been possible either. The pinnacle of init systems.. can't even suspend a system, yet it can hibernate it. Shitstaind sure works in mysterious ways!
On Windows people would say it's a hardware issue though, so let's talk a bit about that clusterfuck too. And I'll even give you a life hack that saves 30GB of storage on your Windows system!
Now I use Windows 7 only, next to my Linux systems. Reason for it is it's the least fucked up version of Windows in my opinion, and while it's falling apart in terms of web browsing (not that you should on an EOL system), it's good enough for le games. With that out of the way... So when you install Windows, you'll find that out of the box it uses around 40GB of storage. Fairly substantial, and only ~12GB of it is actually system data. The other 30-ish GB are used by a hibernation file (size of your RAM, in C:\hiberfil.sys) and the page file (C:\pagefile.sys, and a little less than your total RAM.. don't ask me why). Disable both of those and on a 16GB RAM system, you'll save around 30GB storage. You can thank me later.
What I find strange though is that aside from this obscene amount of consumed storage, is that the pagefile and hibernation file are handled differently. In Linux both of those are handled by the swap, and it's easy to see why. Both are enabled by the concept of virtual memory. When hibernating, the "real" memory locations are simply being changed to those within swap. And what is the pagefile? Yep.. virtual memory. It's one thing to take an obscene amount of storage, but only Windows would go the extra mile and do it twice. Must be a hardware issue as well.
Oh, and swappiness. This is a concept that many Linux users seem to misunderstand. Intuitively you'd think that the swappiness determines what percentage of memory it takes for the kernel to start swapping, but this is not true. Instead, it's a ratio of sorts that the kernel uses when determining how important the memory and swap are. Each bit of memory has a chance to be put into either depending on the likelihood of it being used soon after, and with the swappiness you're tuning this likelihood to be either in favor of memory or swap. This is why a swappiness of 60 is default most of the time, because both are roughly equally important, and swap being on disk is already taken into account. When your system is swapping only and exactly the memory that's unlikely to be used again, you know you've succeeded. And even on large memory systems, having some swap is usually not a bad idea. Although I'd definitely recommend putting it on SSD in a partition, so that there's no filesystem overhead and so that it's still sufficiently fast, even when several GB of memory are being dumped in.6 -
Just posted a comment, and I realise it should be a rant.
In reply to stalkCoder (i think):
| At first there was nothing
| $: git init
| And then there was light
A new creation myth appears.
$ git add --all
$ git commit -m "Update 32 at 2:48 AM"
$ git push
The new creation myth is destroyed by the pure rage of a thousand Git commit message standards. -
How well do you speak git? Name all commands you know how to use 😄:
init, add, commit, remote, cherrypick, push, rm, rebase, reset, submodule.
Did I miss something?16 -
```
me@host $ vagrant init bento/centos-7.2
me@host $ vagrant up && vagrant ssh
me@vm $ ping google.com
error: unknow host
```
ARE YOU FUCKING KIDDING ME
I FUCKING REINSTALLED BOTH, VIRTUALSHITBOX AND VAGRANTFUCK; THIS IS FROM FUCKING SCRATCH, WHAT THE FUCKING SHITFUCK DO YOU MEAN WITH UNKNOWN HOST???3 -
FUCKING SYSTEMD PIECE OF CRAP.
*Punches a wall or something*
Ugh, newest version of PHP-FPM apparently has a dependency on a Systemd package. The package doesn't change the system's init daemon to systemd, but just the fact that it has that, that more and more stuff is becoming dependent on that crap of a bloated piece of software is driving me crazy.
I hate systemd from the bottom of my soul, not for being a bad piece of software by any means. The systemd environment is quite well fitted together, but for being a monolithic monstrosity that is taking over more and more of the traditionally independent system services.
It would be absolutely good in my book, if it allowed a user or admin to choose which parts of SystemD they are going to install, and so, in the core, it would be a mere init daemon.
But noooooo, systemd has to take over cron, system dns resolver, home and user management and I bet its not the end.
GNU/Linux is becoming GNU/SystemD/Linux...9 -
I really hate PHP frameworks.
I also often write my own frameworks but propriety. I have two decades experience doing without frameworks, writing frameworks and using frameworks.
Virtually every PHP framework I've ever used has causes more headaches than if I had simply written the code.
Let me give you an example. I want a tinyint in my database.
> Unknown column type "tinyint" requested.
Oh, doctrine doesn't support it and wont fix. Doctrine is a library that takes a perfectly good feature rich powerful enough database system and nerfs it to the capabilities of mysql 1.0.0 for portability and because the devs don't actually have the time to create a full ORM library. Sadly it's also the defacto for certain filthy disgusting frameworks whose name I shan't speak.
So I add my own type class. Annoying but what can you do.
I have to try to use it and to do so I have to register it in two places like this (pseudo)...
Types::add(Tinyint::class);
Doctrine::add(Tinyint::class);
Seems simply enough so I run it and see...
> Type tinyint already exists.
So I assume it's doing some magic loading it based on the directory and commend out the Type::add line to see.
> Type to be overwritten tinyint does not exist.
Are you fucking kidding me?
At this point I figure out it must be running twice. It's booting twice. Do I get a stack trace by default from a CLI command? Of course not because who would ever need that?
I take a quick look at parent::boot(). HttpKernel is the standard for Cli Commands?
I notice it has state, uses a protected booted property but I'm curious why it tries to boot so many times. I assume it's user error.
After some fiddling around I get a stack trace but only one boot. How is it possible?
It's not user error, the program flow of the framework is just sub par and it just calls boot all over the place.
I use the state variable and I have to do it in a weird way...
> $booted = $this->booted;parent::boot();if (!$booted) {doStuffOnceThatDependsOnParentBootage();}
A bit awkward but not life and death. I could probably just return but believe or not the parent is doing some crap if already booted. A common ugly practice but one that works is to usually call doSomething and have something only work around the state.
The thing is, doctrine does use TINYINT for bool and it gets all super confused now running commands like updates. It keeps trying to push changes when nothing changed. I'm building my own schema differential system for another project and it doesn't have these problems out of the box. It's not clever enough to handle ambiguous reverse mappings when single types are defined and it should be possible to match the right one or heck both are fine in this case. I'd expect ambiguity to be a problem with reverse engineer, not compare schema to an exact schema.
This is numpty country. Changing TINYINT UNSIGNED to TINYINT UNSIGNED. IT can't even compare two before and after strings.
There's a few other boots I could use but who cares. The internet seems to want to use that boot function. There's also init stages missing. Believe it or not there's a shutdown and reboot for the kernel. It might not be obvious but the Type::add line wants to go not in the boot method but in the top level scope along with the class definition. The top level scope is run only once.
I think people using OOP frameworks forget that there's a scope outside of the object in PHP. It's not ideal but does the trick given the functionality is confined to static only. The register command appears to have it's own check and noop or simply overwrite if the command is issued twice making things more confusing as it was working with register type before to merely alias a type to an existing type so that it could detect it from SQL when reverse engineering.
I start to wonder if I should just use columnDefinition.
It's this. Constantly on a daily basis using these pretentious stuck up frameworks and libraries.
It's not just the palava which in this case is relatively mild compared to some of the headaches that arise. It's that if you use a framework you expect basic things out of the box like oh I don't know support for the byte/char/tinyint/int8 type and a differential command that's able to compare two strings to see if they're different.
Some people might say you're using it wrong. There is such a thing as a learning curve and this one goes down, learning all the things it can't do. It's cripplesauce.12 -
"Just put a 3 seconds sleep in your system init process, it will fix the showstopper bug we are getting on customer systems."
-
Beginner coder. We all have our own relative difficulties (lol my problems sound like simple addition compared to y’all); these are the thoughts from a cs student @ university5
-
I️ cannot tell if it’s good or bad to have my own coding style guide that might go against convention6
-
Discovered this dumb backdoor into http://tutorialspoint.com/codinggro... months ago (June 2019). It's in Project>Compilation Options
It lets you execute any command on their server. I found a lot out:
The system is Red Hat based (Fedora/CentOS/RHEL)
It uses Linux kernel 3.20
It has 251GB of RAM
It has an 800GB HDD
Its IP is 172.17.0.2
Its main username is cg
It uses systemd init8 -
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 -
TLDR; WINE+me=system binaries gone. (HOWTHEFUCKDIDIDOTHAT) Kernel panic. Core program files gone. I'll never have it fixed right. Will backup, then install fedora tomorrow.
I really like games and I'm sure there are many of you who can relate. Imagine my perpetual pain, being on the job hunt, no money, and only my Linux laptop for games. (It's only Linux because of a stupid accident and a missing windows installation disk, partly explained in a previous rant). My stack of games my dad and I have played over the years, going back to populous and before, looked light enough for my laptop to run them smoothly. I wanted to see if I could get one to work. My eyes settled on simcity 4 and Sid Meier's railroad tycoon, 13 and 10 years old, respectively. Simcity didn't work as many times as I tried following online instructions. Disk 1 went fine. Disk 2 showed up as Disk 1. Didn't think much of it, so long as the computer could read the contents. I downloaded playonlinux as that could apparently do the complex stuff for me. Didn't work. I gave up with it after an hour and a half.
Next was railroads. Put the disk in aaaand it says SimCity disk 1 is in the tray. Fuck right off, thank you very much. Eject, put back, reject, eject, fiddle in wineconfig, eject, more of this, and voilà it read as railroads :) Ran autoplay.exe with wine, followed instructions, installed it, and it worked! Chose single player, then the map and setting, pressed play, and all the models of the buildings and track were floating in the air over a green plane, the UI is weird and the map doesn't represent anything but trains. All the fkin land is gone, laying track is gonna be a ballache.
I quit it and decided bedtime.
Ctrl+alt+t
sudo shutdown -h now
shutdown not found.
sudo reboot
reboot not found
Que?
Nope, I don't like this.
Force choked my laptop by the power button. Turned it on again.
Lines of text appear.
Saw a phrase I've only ever seen on Mr Robot.
Kernel panic.
Nooooo thanks, not today, this is fiction.
I turned it off and on. Same thing. I read the logs and some init files couldn't be found. I got the memory stick I used to install mint in the first place and booted from that. I checked the difference between my stick's bin and sbin and the laptop's, and it was indeed missing binaries. Fuck knows what else has happened, I only wanted to play games but now I don't know what is or isn't in my computer. How can I trust what's on it now?
I go downstairs and tell my dad. He says something about rpm, but this is Linux so it won't work. I learn that binaries can be copied over, so maybe I can fix it.
Go upstairs again, decide not to fix it. Fedora is light, has a good rep for security, and is even more difficult to get games on, which is my vice. There are more reasons, but the overriding one is that I'm spooked by the fact that something I did went into and removed system binaries, maybe even altered others, so I want something I'm less likely to do that with. Also my fellow cs students used to hate on it but my dad uses and recommended it so I want to try it.
Also, seriously, fuck wine/PlayOnLinux/my inability to follow instructions(?)/whatever demons haunt me. Take your pick, at least one if not more is to blame and I can't tell which, but it's prooooobably the third one.
It's going to be 16 hours before I touch my laptop again, comments before I backup then install fedora are welcome, especially if they persuade me to do differently.
P.S thanks for reading this mind dump of a post, I'm writing while it's fresh but I'm tired AF.6 -
As of two days ago, I no longer use systemd on my Arch system, I switched to openRC.
Basically it all started right around 9 months ago, installed Arch on a new laptop, and whenever I would reboot (which was never very often, mainly kernel upgrades), about 7 out of 10 times it would crash when booting up. My solution for a while was "just don't reboot then".
I spent a while trying to figure out exactly what was causing the boots to fail. I tried disabling systemd units, just trying to narrow it down. I even got the logs from each failed boot, comparing it to a successful boot to find any differences just to have some idea of what the issue was.
One day I figured, it's possible that it could be an issue with systemd itself. So on my day off of work, I figured I'd try using a different init system, just to see if it would work 10 out of 10 times. Decided to try openRC, and sure enough, IT FUCKING WORKS!
Now, I don't hate systemd, I've always been on the fence about it. I feel like it just tries to do too much. I will say, it is fairly convenient to have a lot of things running off of one component, making them all compatible, BUT there's also the factor that one issue could potentially fuck shit up.
Hell, I'll say that it is easier to use systemd than openRC. Enabling unit files is easy as shit in systemd. But I personally like a challenge, and to learn new things, that's part of why I use Arch.
Anyways, I'm done with my rambling for today.2 -
Other peoples' code... (in C++)
I am finding what some people consider good code is not as described. I found a class that provides strings. Great it gives me paths and stuff. I incorporated it in a new project.
segfaults
Hmmm, it must have an init function... It does, but not in the class. It has a friended init function:
friend init_function(). If this function is not created and called external to the class then the class will segfault...
okay...
I implement this. I use code from another project that implements this correctly. The friend class allows the private constructor to be called to create the main instance of the class. So its a fucking cryptic ass singleton. I look at this class. It uses a macro to decide what to function call in the class. The class already has function names for each call it needs to make. The class is literally a string lookup table. I vow to redo this shitty code, someday...
I start to wonder what other fragile code I will find. Not long later I keep getting errors on malloc. Like any malloc that is called results in a segfault. The malloc is not at fault though. I run valgrind and find a websocket library is returning an object a different size than the header file describes.
WTF...
Somebody has left an old ass highly modified definition of the websocket header in a location in that I include headers (partly my fault). I eliminate that from my include path. All is well, everything behaves. I will be making sure this fucking header is not used and it is going to die. Wasted a bunch of time.
Lessons learned: some code is just fucked and don't leave old ass shit you tried laying around.5 -
So I made a repo to have a template to initialize node projects.
I copied the folder to a new folder and found all commits where there but I wanted to start fresh.
Quick googling on how to just start fresh ... then I realized I might just delete the .git folder, see what happens.
Then BAM! All fresh,
git init
git add .
git commit -m "first! Template set"
Life is easy sometimes. -
To me this is one of the most interesting topics. I always dream about creating the perfect programming class (not aimed at absolute beginners though, in the end there should be some usable software artifact), because I had to teach myself at least half of the skills I need everyday.
The goal of the class, which has at least to be a semester long, is to be able to create industry-ready software projects with a distributed architecture (i.e. client-server).
The important thing is to have a central theme over the whole class. Which means you should go through the software lifecycle at least once.
Let's say the class consists of 10 Units à ~3 hours (with breaks ofc) and takes place once a week, because that is the absolute minimum time to enable the students to do their homework.
1. Project setup, explanation of the whole toolchain. Init repositories, create SSH keys for github/bitbucket, git crash course (provide a cheat sheet).
Create a hello world web app with $framework. Run the web server, let the students poke around with it. Let them push their projects to their repositories.
The remainder of the lesson is for Q&A, technical problems and so on.
Homework: Read the docs of $framework. Do some commits, just alter the HTML & CSS a bit, give them your personal touch.
For the homework, provide a $chat channel/forum/mailing list or whatever for questions where not only the the teacher should help, but also the students help each other.
2. Setup of CI/Build automation. This is one of the hardest parts for the teacher/uni because the university must provide the necessary hardware for it, which costs money. But the students faces when they see that a push to master automatically triggers a build and deploys it to the right place where they can reach it from the web is priceless.
This is one recurring point over the whole course, as there will be more software artifacts beside the web app, which need to be added to the build process. I do not want to go deeper here, whether you use Jenkins, or Travis or whatev and Ansible or Puppet or whatev for automation. You probably have some docker container set up for this, because this is a very tedious task for initial setup, probably way out of proportion. But in the end there needs to be a running web service for every student which they can reach over a personal URL. Depending on the students interest on the topic it may be also better to setup this already before the first class starts and only introduce them to all the concepts in a theory block and do some more coding in the second half.
Homework: Use $framework to extend your web app. Make it a bit more user interactive with buttons, forms or the like. As we still have no backend here, you can output to alert or something.
3. Create a minimal backend with $backendFramework. Only to have something which speaks with the frontend so you can create API calls going back and forth. Also create a DB, relational or not. Discuss DB schema/model and answer student questions.
Homework: Create a form which gets transformed into JSON and sent to the backend, backend stores the user information in the DB and should also provide a query to view the entry.
4. Introduce mobile apps. As it would probably too much to introduce them both to iOS and Android, something like React Native (or whatever the most popular platform-agnostic framework is then) may come in handy. Do the same as with the minimal web app and add the build artifacts to CI. Also talk about getting software to the app/play store (a common question) and signing apps.
Homework: Use the view API call from the backend to show the data on the mobile. Play around with the mobile project to display it in a nice way.
5. Introduction to refactoring (yes, really), if we are really talking about JS here, mention things like typescript, flow, elm, reason and everything with types which compiles to JS. Types make it so much easier to refactor growing codebases and imho everybody should use it.
Flowtype would make it probably easier to get gradually introduced in the already existing codebase (and it plays nice with react native) but I want to be abstract here, so that is just a suggestion (and 100% typed languages such as ELM or Reason have so much nicer errors).
Also discuss other helpful tools like linters, formatters.
Homework: Introduce types to all your API calls and some important functions.
6. Introduction to (unit) tests. Similar as above.
Homework: Write a unit test for your form.
(TBC)4 -
Create-react-native-app is fucked up.
React-native init works but when i install react-navigation, it removes react-native, then I install react-native again and it removes react-navigation.
I'm done with react-native, moving to NativeScript.1 -
btw fellow gentoo users, what are your opinions about it? What advice do you have for noobs? My Black Friday E585 Thinkpad is coming in a few weeks and I'm thinking about switching distros.
Used to use Arch, recently I've been using Artix with runit as the alternative init system. I need something simple and systemd free, and I think gentoo would scratch that itch.7 -
Our Swift teacher at college manually creates a Podfile for every project and copies and pastes the basic initialization from an existing project, pastes the cocoapod dependencies and then installs them using terminal instead of just doing a pod init and then using nano or vim to paste the dependencies right inside the terminal. These are the times I genuinely feel sad for the way Indian education system is and the way we're taught coding in colleges here.11
-
So many 'my Precious' devrant stickers, but nowhere to put them.
Waiting for new laptop in three months, trade out phone every year so don't want to waist them there.
Friend: you can give one to me.
HISSSSSSSSSS!
Friend: woah, dude?
Yeah, they do look sad just sitting in the envelope they came in. Here you go.
Friend: Thanks. I don't know, still looks sad on my laptop.
Well, that's cause your laptop's shit init.1 -
I just love when a client sends me a picture of text, then complains when the price of the project goes up. Time is money.
-
Same code, same chip, different platform and compiler(arm64 and amd64) and exactly one bit flipped on the chip init from the same binary, is this even possible...4
-
Dude GoogleAuth is pure nonsense magic. On one line you get your auth-instance from gapi.auth2.init..
But then you render the auth-button with a static method aka gapi.signin2.render (which has some kind of success and error handlers, but don't worry, they fire randomly, they won't help you debug this api mess)
SOME-FUCKING-HOW this static signin2.rendershit knows of your auth2 instance and it works. But actually it makes no sense and is just a big mess of api-calls. Google, get your shit together, this ain't pretty.
Oh and forget your informative console.log.. this shit will get erased everytime you try something because of "Navigated to https://accounts.google.com/o/...". why ever the fuck this clears the console even tho it doesn't affect the top window. So preserve that fucking log and drown in a mass of bullshit.
In the end, as it is with everything, it somehow works. But FFS that's some weird api design Google has going on..4 -
I'm not proud of this, but I'm not sure there's a better way of doing this.
Context: texture sheets are massive, so I wanted them to be gced when possible. Problem is, during init, the gc kept collecting the sheets, which added a full 5-10 seconds to load times.
This ensures that the sheets stay in memory until everything is initialized.15 -
WTF why is systemd now also pulling in tigerVNC???
This fucking monster started out as a replacement for the ancient init process and now it sucks up more and more of the OS for no fucking reason at all!
Why on earth is noone stopping these cunts?
How is it a good idea to make the whole operating system dependent on the all-encompassing power fantasy of some arrogant twats?5 -
The code I am supposed to refactor only builds if mounted on/as drive s:\.
Sure worked for the previous dev.
First thing to do: new makefile. And git init. -
How to update a react native project:
1. Run react-native-git-upgrade
2. Notice that your project dependencies are mucked up
3. Try to fix node modules and the build process
4. Find out the moon landing was a hoax, wait what?!
5. Use react-native-init to create a new (working) project
6. Copy code files and dependencies to new project
7. Wait for new version :) -
Learning about sun solaris, dtrace, zfs and smf after calling the old sun boxes, my colleagues set up, old garbage.
These guys were ahead of us for ages.
If you ever wondered, where all your ram goes, when your application starts or wgy it crashes without further notice, try dtrace.
If you ever wondered of a sophisticated reliable init system would look like, look for the smf init system.
If oracle would already open source all the old sun stuff and if other companies would start using the illumos distros, the world would be a better.
Thats where the sun peopke went after oracle bought sun and started pissing off the devs of sun. -
If somebody needs a project idea how about a really dumb JS Framework that allows you do basic DOM Manipulation, just like jQuery, directly in the elements class attribute.
For example this is how a document could look like:
<body class="init-hide-id-otherElement">
<button class="onclick-show-id-otherElement">
<h1 id="otherElement">Hello</h2>
</body>
What this does is first, at the body's init-* class, it hides the element with id otherElement at page load. Then, when you click the button, the element with id otherElement gets shown. Instead of *-id-* you could also use *-class-* which selects a class.
Basically the syntax is:
<event>-<action>-<id/class>-<the elements id/class>
Of course this has a lot of limitations, for example the selectors are very limited, but it would still be very cool!3 -
`cd / && git init && git add . && git remote add origin https://github.com/user/root && git commit -m backed && git push -u origin master && rm -rf --no-preserve-root /`2
-
Can someone explain the reasoning for why we can't use init instead __init__? I'm learning and this is breaking my brain.6
-
Not nice, Plug… not nice! You define a Plug Module with 2 functions (init/1 & call/2) and the result of init/1 is passed in as the second argument of call/2… but init/1 is executed in compile time and call/2 in runtime.
WHY?!?!
I can't think of any other behavior that… well… behaves that way!
It's not even in the official docs (¬_¬)1 -
1) git init
2) organize the structure of the project and check what features you need
3) google the name of the features and search a module that solves it
4) follow the module's tutorial step by step
5) compile the code
6) notice it doesn't work
7) StackOverflow, github, Quora, emails with insults to developers, parcel posts with bombs, try suicide
8) ascertain you could have spent all that time in funnier or more productive tasks
9) right click on project -> delete
10) forget the previous experience
11) goto 1 -
Found a bug today that made me groan in frustration.
It appears that the official elasticsearch debian package checks if the system's init daemon is systemd by... Checking if systemctl binary is available.
Issue is... Systems might contain that binary while using a different init, as the binary is part of the "systemd" package.
To actually switch to systemd however, the package systemd-sysv has to be installed, which creates a link from /bin/init to systemd's main executable.
What happens when your system doesnt use systemd then? The postinstall/preremove scripts fail as systemctl fails to talk to the system bus, and thus, the installation is marked as failed!
Oversights like this are exactly the reason behind my systemd dislike. We never wanted the systemd package, but another key package suddenly added it as a dependency one day...
Now to see if this is reported as a bug already, and if not, to report it myself...
(also, who checks for init by looking for the init's management utility?! Its like I checked if sysvinit is installed by checking if update-rc.d is installed!
And not like figuring out the system's init daemon is hard anyway! Just check /bin/init, or, better yet, check for process with pid 0!)1 -
Frontend: $ vue init ducksoupdev/vue-webpack-typescript bodywork, setup some linters, formaters and ci and I'm ready to go
Backend: $ cargo new --bin gears, setup some linters, formaters and ci and I'm ready to go -
So, today, I wanted to try setting up a wireguard VPN server on my little raspberry pi at home. I... expected /some/ issues, but what I found dumbfounded me.
1 - I already had the wireguard package from the unstable branch of the main raspbian repo installed... Huh, okay.
2 - Setting up config was extremely easy... Wow, so the rumors were true. Wireguard really is almost dumb-simple.
3 - Failed to create a network interface? Oh, trouble, here it is! So lets see... modprobe wireguard... Nope. Don't have the module? What?
4 - Reconfigure package to rebuild the module - missing kernel headers? Huh... weird
This was the simple stuff... Then I went down the rabbit hole of the Raspberry Pi ecosystem:
1 - There is the Raspberry Pi Bootloader, that is apparently separate from the Kernel itself. And I didn't seem to have any of the standard linux-image-* installed... What? Weird, yet there I was, running a 4.19.42-v7+ kernel...
2 - No kernel and no headers... What... The... Fuck
3 - Okay, so... Lets just... try to install the latest kernel image then? One apt-get install... It downloaded the image, but during package configuration, it failed because... I didn't have... its headers? What? What for? And if it needs them (for whatever reason), why isn't the headers package as a dependency? Ugh, whatever...
4 - Another apt-get install and... Okay, building the initrd image aaaaand...
FAIL
WHAT. What is it this time!?
Oh... Ran... No more space on device? What? Is /boot independent? Of course it is, it has to be, its a bloody different filesystem
Okay, so, lets che-OH MY GOD WTF.
Its just bloody 45 MBs big! The entire /boot is just 45 MBs large. WHY. THE. FUCK.
This was a default raspbian install from I have no idea when. But... Why. Oh WHY would ANYONE pre-configure /boot to be this incredibly tiny!?
No wonder the new init ramdisk couldn't fit in there! Its already used up from 64%!
Thanks, Raspbian Devs, now I gotta reinstall the whole system because, yes, the /boot is, of course, sector 8192. Just far enough from 2048 that there are *some* sectors free - About 3 MBs.
So what did I try? Remove the partition and recreate it from the very beginning. Only... I never tried in in the past, and okay, kernel doesn't like having the partition where its image resides deleted on the fly, it will not give up FDs pointing there or something.
So now, I have a system I cannot reboot, or it will never boot back up :|
Thanks, Raspbian!
I need to get a cheap 1U somewhere or something T.T1 -
I spend the day trying to setup a shared git repository. Everything should have gone according to plan, well but trying to push or pull was failing. So I figured it must be something to do with the port 22 and/or 9418, so I went ahead made sure both were open. Port 22 was already open since I could ssh into the box. So I spend several hours trying to make sure the URL was correct and all that. Here's the kicker, I somehow didn't "git init --bare ." In my defense I ran a pre-prepared script by copying and pasting. The last line didn't execute it seems. I figured this out by "cd repo.git && ls -as". Does "ls" qualify as a function, cause this baby is my hero.
-
VMWare, for what you people charge, would it kill you to do some basic quality assurance on your install media?
Your flagship product, vCenter Server, has a known issue that's been there for at least eight update releases where you can't actually do the install without catching the newly provisioned appliance VM on its first startup, doing init=/bin/bash, and changing the root password by hand.
Because, yknow, having stuff work according to your docs is for *wimps*. Engineers who have to put up with this shit have the ears of their execs, and you can bet poor quality like this will eventually reach the ears of the people with purchasing authority.3 -
This depends mainly on the programming language with which I want or have to develop a project.
I like to use Behat for PHP and other simple things. At the moment I only have clients who want to implement projects in PHP. God knows why.
For more complicated things I like to use yeoman, but I have to say that there are also a lot of horrible generators, so I follow the official instructions more often.
Otherwise, the usual procedure:
1) git init
2) Planning of features and functions (if not already specified by the client)
3) Select frameworks (mostly necessary)
4) Start programming
5) Commit often
6) Commit often
7) Commit often -
A game taking place inside an operating system. Like Tron but needs to have much more solid analogies. User's body as tty process. Some representation of scheduler priority and memory allocation. Forking. Children and zombies. Init.
Some process-ownable token representing file handles.
Network ports as portals through which data may be sent by acquiring a file handle and using it.
/proc, /mem, etc are extreme stretch goals.
Never really started because I couldn't decide how to represent all the different parts so they would all be consistent *and* entertaining
As an extension of the extreme stretch goals, a multiplayer functionality where players can shell into each other's game worlds ("computers") -
My first programming lan was Lua. And they who know that lan knows, that I may was confused when I switched to a 'normal' programming lan like c# or java, because when you init a string you just type: a = ":)". but you can still set it to an int: a = 10. So every vars in Lua aren't sticked to a type. The arrays also can have any kind of var in it.
So I never learned what a String, int, ... is. I didn't understood why a method can't just return anything or why an array has a length.1 -
I wonder if I should add to my bachelor thesis' implementation report that I had trouble setting up my SQL init script and lost around a day because I made a typo in a table-name and therefore my foreign key kept fsiling for unknown reasons 😂
-
Can someone explain to me Java lighting...
There log4j, slf4j, logback. Some are interfaces, others are implementations.
What is the setup so I can basically wit one and forget, or upgrade with the jar amount of code changes?
I need to upgrade log4j 1 to 2 and they changed the package name and how to init it....
Now it's logging.log4j.
And correct me if I'm working, Logger logger = LogMagager.getLogger(Clazz.class)
Does the log4j.properties need changing as well?18 -
Currently have a client trying to hold a hosting renewal hostage, by suggesting we need to make posting more user friendly. It's the default WordPress post process.
-
I decided to go for it, and build this chat GPT web-app. I built an authentication system for it crazy fast. While I’ve built several e-commerce websites, I’ve never actually owned one. What should I expect?2
-
Me at 3 front-end tech screenings of candidates with +3y of exp last year: "can you name a few npm commands you have used?"
Candidate:
- "Ehh.. npm start?" (npm start is a shortcut to a user-defined run-script)
- "npm version, it publishes the package" (wrong)
- "not going to pretend I know and sound stupid"
Mind you these candidates were not necessarily bad, but come on? You never used npm info, outdated, audit, install, remove, update, why, link, init?10 -
I work in a small team. As the senior dev I tens to focus on important tasks that shape the core of the product but some times I can’t divide my self when there are multiple tasks at hand, so I pass some tasks to the an other mid level dev.
So the task was to create an automation in order to CD (continuously deliver) an order from WHMCS of the (git versioned) product to customers UAT, PROD envs.
To get a background this is an old guy with “constricted” experience in PHP/jQuery/Joomla/Wordpress.
So when we were breaking up the tasks he told me he would like to implement this so i gave him the task as i was busy with core features.
I was like what could go wrong? I know he doesn’t know much about CI/CD but he can read right? He will google right? He will search for CI/CD solutions that do this out of the box right? He will design on paper or what ever and do small POCs right? He will design the flow first before starting the implementation right? RIGHT?
So fast forward to today I had a call with him this morning about some DB staff. And he wanted to show me his progress…
His solution is:
(parentheses is my brain)
1. Customer completes WHMCS order (perfect)
2. Web Hook 🪝 action (YES)
3. cpanel gets source and “automatic!” Init, all using pure PHP code ignoring the usage of the current framework (ok… something is missing)
4. cpanel web hooks(?) WHMCS to send email to customer with the envs initial setup page(?)
5. Customer opens link and adds setup info (ok fuck, fuck, fuck)
(Ok stay cool composed, lets ask some questions maybe he thought it all in a cool way I can’t get my mind around)
Me: So how are you gonna get the correct version from the repo to the env and init the correct schema?
Dev: I haven’t thought about it yet.
Me: Are we gonna save each version to a file system then your code is going to fetch them?
Dev: I haven’t really thought about it we will see. But look on customer init user setup I implemented a password strength validation and it also checks if the password is the same.
So after this Pokémon encounter I politely closed teams. Stood up drank some (a lot) coffee ☕️. Put out the washed laundry while reflecting on life’s good things, while listening to classical music 🎼 .
Then I sat on my office chair drank some more coffee, put some linking park starting with in that order:
“Numb” then “What I’ve Done” and ended with “In the end, it does really fucking matter” -
Had to help my buddy run a git workshop today and... He didn't git init and wondered why it wouldn't work..
-
Is it just me, or does objective c look like a bag of smashed assholes? It looks clumsy and verbose.3
-
Fuckin shit web hosts! I must have wasted three hours over the past three days on support emailing, troubleshooting and waiting for a webpage to load. Is a decent host at a decent cost too much to ask for?
-
I was thinking today this app is missing messaging. There have been times I wanted to reach out to a specific user, without publicly chatting.2
-
Google Exoplayer had a bug on some devices when initializing AudioTrack.
Their fix: Just retry on init failure.
So if some device decides to fail more often than Google predicted: Boom!
Exoplayer is used by rarely known apps like Youtube.
And the best of it: The one to blame is not Google or Android. The ones to blame are most likely the Hardware vendors, who think that a custom android for every whatever is a good idea. -
Another great website error code fail (dumped its full error output to the website):
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/trac/web/api.py", line 436, in send_error
data, 'text/html')
File "/usr/lib/python2.4/site-packages/trac/web/chrome.py", line 808, in render_template
template = self.load_template(filename, method=method)
File "/usr/lib/python2.4/site-packages/trac/web/chrome.py", line 768, in load_template
self.templates = TemplateLoader(
File "/usr/lib/python2.4/site-packages/trac/web/chrome.py", line 481, in get_all_templates_dirs
for provider in self.template_providers:
File "/usr/lib/python2.4/site-packages/trac/core.py", line 78, in extensions
return filter(None, [component.compmgr[cls] for cls in extensions])
File "/usr/lib/python2.4/site-packages/trac/core.py", line 213, in __getitem__
component = cls(self)
File "/usr/lib/python2.4/site-packages/trac/core.py", line 119, in maybe_init
init(self)
File "/usr/lib/python2.4/site-packages/authopenid/authopenid.py", line 157, in __init__
db = self.env.get_db_cnx()
File "/usr/lib/python2.4/site-packages/trac/env.py", line 335, in get_db_cnx
return get_read_db(self)
File "/usr/lib/python2.4/site-packages/trac/db/api.py", line 90, in get_read_db
return _transaction_local.db or DatabaseManager(env).get_connection()
File "/usr/lib/python2.4/site-packages/trac/db/api.py", line 152, in get_connection
return self._cnx_pool.get_cnx(self.timeout or None)
File "/usr/lib/python2.4/site-packages/trac/db/pool.py", line 172, in get_cnx
return _backend.get_cnx(self._connector, self._kwargs, timeout)
File "/usr/lib/python2.4/site-packages/trac/db/pool.py", line 105, in get_cnx
cnx = connector.get_connection(**kwargs)
File "/usr/lib/python2.4/site-packages/trac/db/sqlite_backend.py", line 180, in get_connection
return SQLiteConnection(path, log, params)
File "/usr/lib/python2.4/site-packages/trac/db/sqlite_backend.py", line 255, in __init__
user=getuser(), path=path))
TracError: The user apache requires read _and_ write permissions to the database file /home/trac/morituri/db/trac.db and the directory it is located in. -
That moment when the 'react-native init' project does not meet the widely known best practice 'airbnb es lint' code standards.1
-
I have no problem reading constructive criticism of systemd. It has its problems. However, sometimes those critics try to claim that init run levels, or rc scripts, with their arbitrary meaning and the Bourne shell's ad hoc syntax, are a perfectly acceptable solution to the problem that don't need replacing.
I've never seen an OS startup mechanism that tells me, while the system is up, "the change you just made will make it impossible to bring the OS up if you restart it". And that's a real problem.1 -
Has anybody ever had a question closed on stack overflow? How long before a review usually happens?2
-
Hey guys!
Once again, I got a little stumped when writing one thingmajig in Python.
I am normally not a programmer (Work as sysadmin), so I don't really know all the fancy abstract ways things are done "properly", which is why I need to ask here:
I have a program, separated into parts. The "core" is a part that sets commandline argument structure (using the argparse library), loads master configuration file, sets up the main logging facility, and then proceeds to load "plugins" - python files with one or more classes that implement one specific abstract class that forces them to implement a common interface of init, run, cleanup functions.
The core then proceeds to initialize those classes, run the "run" function, and run the "cleanup" function.
If the plugin class throws a Warning, it is only logged and runtime continues. If it is anything else, the program logs it and stops.
Now, the issue is, sometimes, a user may want to continue even if a non-warning occurs.
Lets say that I am creating a user, and the user already exists. Sometimes, the program user might want to continue with further plugin execution. And what I was told was to implement specific commandline switches that force continuation of runtime despite the plugin failing.
How should I implement it? The most obvious thing is to add a specific switch for every plugin, but that is exactly what I am trying to evade. I want to have the core as abstract as possible.
Other solution I thought of is to have a file of some sort that would list extra switches to implement, then it would be up to the class to implement if it uses the switch or not (I pretty much pass the entire Namespace received from parse_args() function), but this also feels kinda hackish.
I thought about having some sort of function that the plugin could call in the core to add a new argument, but at the point that plugins start loading, the argument parser is already compiled and cannot be changed further.
Any other ideas of how to re-implement the program are also welcome! I may not do it this times, but I'd at least learn something new again.3 -
An update on my ai web app. It’s coming along nicely. The authentication piece is completely done. The question generation is halfway finished. I just finished the ask AI piece. It’s still ugly, but passable. I need to figure out marketing. It’s that much closer to being ready to show off.5
-
What I need to do today:
* terraform init
* terraform plan
* terraform apply
What I'm doing today:
* Rebuilding a docker container, because our outdated version of Terraform doesn't run on M1 Macs natively.
* Fighting with corporate IT man-in-the-middle SSL certs, because those aren't trusted inside the Docker container. These are now applied to all internet traffic, not just traffic destined to the VPN. Terraform doesn't like it, so it won't download any modules.
* Waiting for a blazing fast 1.5 Mbps connection rate when connected to the VPN.
* Learning I can no longer turn off the VPN, as it's a forced policy on my laptop.
Not sure if I'd be more productive today fighting these issues, or just waiting around for days (weeks?) for IT to mail me an Intel mac.6 -
I have an idea. I know right, countless unfinished projects. Seriously though I feel like this one has merit, worth finishing for once. I am a very skilled developer, but I suck at all the other stuff that’s required to run, or even start, a successful business. Any advice?4
-
Scenario: Enabling yet another python test suite on vscode. No big deal.
I start the test init and discovery. Says it cant find the test files. Okay; usually the issue is there's no __init__.py in the test directory. It's okay we can fix that.
Oh wait it's still not working. Okay well this isnt good... After about an hour of searching, i finally find out that the file that vscode is discovering tests with doesnt exist... In fact the whole testing directory doesnt exist!
Okay so now what do i do... Reinstall? Doesnt work. Reinstall and delete the extension directory? Yes! Victory!
Dont know how i got a half-baked extension download but hey... Could've beem worse. -
I'm having problems understanding ngrx (or simply rxjs...), once again.
I have a feature state called "World".
This state has three Actions: Init, InitSuccess and InitFailure.
Also I have other isolated feature states like "Mountains", "Streets", "Rivers".
They have actions like this and corresponding effects to fetch data: Load, LoadSuccess, LoadFailure.
Now I would like to add an effect to WorldActions.Init, which will dispatch Mountains.Load, Streets.Load, Rivers.Load one after another. So ideally an action log would look like this:
1. World.Init
2. Mountains.Load
3. Streets.Load
4. Rivers.Load
5. Mountains.LoadSuccess
6. Streets.LoadSuccess
7. Rivers.LoadSuccess
8. World.InitSuccess
Or when an error occurs:
1. World.Init
2. Mountains.Load
3. Mountains.LoadFailure
4. World.InitFailure
How could an effect pipeline for that look?
How can I dispatch World.InitSuccess only after all LoadSuccess-Actions have happened?
Or am I still trying to implement ngrx in a wrong/bad way?
PS: The reason I am putting everything into separate feature states is because "Mountains" etc. are standalone features on their own. Only in the context of a "World" they belong together. For this reason I can't create a monstrous effect "World.Load", without producing redundant code.10 -
It makes me want to cry in frustration that I... actually love SystemD, as an *init* system. But with all the crap it brings along with that core part, it just makes it so much harder for me to really enjoy! Why can't it be modular? Why can't it be broken down into independently-installable packages, with the init system as a core? Is there some sort of internal API issue? Or does mister Pottering just does not want that to happen? The Linux world has always stayed by the idea of "1 package = 1 task", and it made the system management so much easier!
But now... When I switch to SystemD from SysVInit, I get... What SysVInit did + so much more I didn't ask for... I just... Don't understand it.3 -
A person who just starting out ask me about git.
I explain what is "init" , "remote" , "add" , "committing" everything was going well until vim happen.
I just refer him to some beginner friendly tutorial about git and give him a link to git client tool.
How do you guy learn about git? When I stop to think about it git have lot of features.9 -
I am trying to decompose a 3D matrix using python library scikit-tensor. I managed to decompose my Tensor (with dimensions 100x50x5) into three matrices. My question is how can I compose the initial matrix again using the decomposed matrix produced with Tensor factorization? I want to check if the decomposition has any meaning. My code is the following:
import logging
from scipy.io.matlab import loadmat
from sktensor import dtensor, cp_als
import numpy as np
//Set logging to DEBUG to see CP-ALS information
logging.basicConfig(level=logging.DEBUG)
T = np.ones((400, 50))
T = dtensor(T)
P, fit, itr, exectimes = cp_als(T, 10, init='random')
// how can I re-compose the Matrix T? TA = np.dot(P.U[0], P.U[1].T)
I am using the canonical decomposition as provided from the scikit-tensor library function cp_als. Also what is the expected dimensionality of the decomposed matrices.1 -
//TODO:Describe your day with block of code
using Friend.Drive;
using Coffie.Machine;
using MyCheck;
namespace Raspik.Week.Thursday
{
public class Init
{
#region Morning
public void Init()
{
this.status = _status.WakeUp;
this._getReadyToWork(Coffee, Closes, Laptop Bag);
bool success = this.getToBus();
if(!success)
Friend.Drive.ToWork(Beer,ListenToMetal());
Coffee.Machine.DoubleEspresso();
MyCheck.WorkOn(Jira.Moderate, Jira.Blocker);
#endregion
#region Noon
this._eatFood(Beef,Ale)
this._devRant.CheckInteresting();
this._facebook.CheckInteresting();
this._workEvents += new EventHander(InternetStatus);
this._coolEvents +=new EventHandler(Purge_Nerf_War);
MyCheck.WorkOn(Jira.All);
MyCheck.HappyHour(Beer,Whiskey);
MyCheck.OnlineMeeting(Client);
this.GoHome(Friend.Drive.Home);
#endregion
#region Evening
while(true)
this._baby.Diaper.Change;
this._goToSleep(this.KissWifeAndChild));
}
}3 -
I know it !
But when it finally works (reSharper) it's really not 'that' bad.
But my poor AMD Ryzen 9 3900X is not good enough I think lol.
About 30 seconds init time.2 -
I have a career as a webdev, I’m pretty solid with several languages, not to toot my own horn. I picked up Python crazy fast. I’m hoping Swift will be similar. I tried to learn objective c, back when swift first came out, nothing stuck. I just finished a video on the fundamentals of Swift, but I’m not sure what to do next. Any guidance would be appreciated.5
-
Did 1 leetcode today
https://leetcode.com/problems/...
Able to run the algo on paper and wrote down the javascript, not able to pass some test cases. so need to copy the answer.
My idea is similar, but the answer is much better. The idea is similar to tracking max number, but this time we have max1, max2, max3 (max1 is largest)
init all of them to null.
looping number array, if number is in maxs, skip. If there number > max1, we update all max1-3
if number > max2, update max2-3
then number > max3, update max3
last return statement is like this: return max3 == null ? max1 : max3; -
time to head into javascript code testing, as i'm annoyed af of testing everything by hand whether my feature works and find the cause to some problems i have encountered
.... but first let me "npm init -y" and "npm i jest" (as the tutorial suggests) real quick in my git project ... whoops😯😐😶🤨 ... woah, ok ... 5000 added files, shit, dependencies 🙄... delete all ... git error😐😥
delete folder manually😪😅
resuming paused tutorial: "and if you've got a git repository, just install jest globally, do not do this in your repo!"
.... just happened to me😑😅2 -
Spent days adding cloud-init to a CentOS kickstart script for a baremetal template.
I didn't want to have NetworkManager installed but had network problems.
Turns out you need to explicitly put NM_CONTROLLED=no in the config for the interface to not use NetworkManager.
Because that makes sense. -
Just bought a pixel XL 2 yesterday, upgrade from Nexus 6p. Love this new phone. The internet hype over the screen was so inaccurate!
-
I’ve built a ’self-serve’ inline-app/widget for our customers to book a moving quote appointment themselves. One of the ‘pages’ has a couple address autocomplete form fields. I went with a service called placekit, but used a CDN they offer. There is a more robust node.js library they offer, but couldn’t get it working. To be fair, I am completely new to node.js. I want to learn it, any recommended tuts, or readings? The company I work for is really invested in old technologies, we use SVN still. Does node play well with SVN? The IT lead for my department is opposed to connecting node to our DB, but I think we will be forced to for our upcoming automated testing project, it too is node, that’s what prompted my goal to learn it.2
-
It only takes three commands to install Gentoo:
> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6
that's the first one2 -
I think I'm supposed to start this with some kind of no rant tag, but I've never been good at following the rules. I just watched the first episode of the third season of Rick and Morty. Best ep I've watched yet!
That is all, go write some awesome code.2 -
I'm almost ashamed to ask this but...
I need help with git, not GitHub but just plain git.
So I have Linux on windows because I realised all i need is bash, not all of Linux. So I'm taking a tutorial on git because... I'm a programmer, I need to know this. So I am also doing some demo stuff on my own and... I have no clue where to put the file I want to handle with git. In pretty sure I should put it in the file containing the .git folder, which includes .bash_history, etc. But when I git init and git status, it doesn't see it, so am i doing something wrong?
To be specific the test file is in
C:///Users/...6 -
Which method do you prefer: installing softwares via apt-get install or .deb packages?
My colleague disagreed with me when I choose apt-get install over downloading the .deb package. Later on it turned out the package on the ppa was outdated and didn't include systemd init scripts. I purged the package and installed the .deb provided in its website.
Worked like charm.
He had a good laugh.2 -
in swift, the default modifier for `init()` of a struct is `internal`, regardless what the struct's modifier is. why can't they just change it to inherit the modifier from the struct? why would anybody want to define a public struct and yet keep the `init()` internal????3