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 - "forking"
-
!rant
!!git
Who here uses `master` for development?
My boss (api guy) tried to convince me that was normal practice. I gently told him that it sounded crazy and very very bad.
Here's the dev path I'm enforcing on my repos:
(feature branches) -> dev -> qa* -> master -> production*
*: the build server auto-pulls from these branches, and pushes any passing builds to staging/production.
Everyone works on their own feature branches, and when they're happy with their work, they merge it into `dev`. `dev`, therefore, is for feature integration testing. After everything is working well on `dev`, it gets merged into `qa` for the testers to fawn over and beat with sticks. Anything that passes QA gets merged into `master`, where it sits until we're ready to release it. When that time comes (it's usually right away, but not always), `master` gets merged into `production`.
This way, `master` is always stable and contains the newest code, so it's perfect for forking/etc. Is this standard practice, or should I be doing something different?
Also, api guy encourages something he calls "running a racetrack" -- each dev has their own branch (their initials) and they push to that throughout the day. everyone else pulls from it regularly and pushes to their own branch. When anyone's happy with their code, they push from their (updated) branch to `qa` (I insisted on `dev` instead.)
Supposedly this drastically reduces the number of merge conflicts when pushing to an upstream branch due to having a more recent ancestor node?
I don't quite follow that, but it seems to me that merging/pushing throughout the day would just make them happen sooner? idk.
What are your thoughts?30 -
--- Github unveils another round of pricing changes ---
In a move that slipped under the radar with some surprising ease, Microsoft-owned repo wrangler Github unveiled yesterday (7th January) a new set of changes to their pricing model. Unlike the last round of changes that saw unlimited private repos gracing anybody with $7 in their pocket each month - The new round sees everyone on the platform receiving unlimited private repos in a move that's been met with some serious scepticism from the community.
The company's surprisingly brief PR emission (via their official blog) states that they've made 2 major changes, "Github Free now includes unlimited private repositories" - the catch being that you're limited to adding 3 collaborators, which appears to be a move aimed squarely at businesses attempting to operate without forking over the cash for an organisation.
In addition to this there's many vague statements about the kinds of scenarios that "are now possible" via "Github free", the kind of vague nonsense that makes trousers considerably tighter in the PR department.
It would appear that anyone who was previously paying the $7 a month is now a "Pro" user, The PR emission states that "Github Pro (formerly Github Developer) and Github team are also available for developers and teams who need professional coding and collaboration features".
It doesn't seem like you're being offered a whole lot for your $7 a month anymore - a move that would be considered by almost any other company in tech as a good thing, but given that it's Microsoft has been met with warranted suspicion and concern.
Or we could just be being a set of Donny Downers about it, who knows shrug8 -
Github Inc. (Feel good inc. parody)
=========================
Ha-ha-ha-ha-ha-ha-ha-ha-ha-ha-ha-ha-ha.
Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
(change) Fetch it (change), Fetch it (change), Fetch it (change), Github
(change) fetch it (change), fetch it (change), fetch it (change), Github
Repos breaking down on pull request
Juniors have to go cause they don't know wack
So while you filling the commits and showing branch trees
You won't get paid cause it's all damn free
You set a new linter and a new phenomenal style
Hoping the new code will make you smile
But all you wanna have is a nice long sleep.
But your screams they'll keep you awake cause you don't get no sleep no.
git-blame, git-blame on this line
What the f*ck is wrong with that
Take it all and recompile
It is taking too lonnng
This code is better. This code is free
Let's clone this repo you and me.
git-blame, git-blame on this line
Is everybody in?
Laughing at the class past, fast CRUD
Testing them up for test cracks.
Star the repos at the start
It's my portfolio falling apart.
Shit, I'm forking in the code of this here.
Compile, breaking up this shit this y*er.
Watch me as I navigate.
Ha-ha-ha-ha-ha-ha.
Yo, this repo is Ghost Town
It's pulled down
With no clowns
You're in the sh*t
Gon' bite the dust
Can't nag with us
With no push
You kill the git
So don't stop, git it, git it, git it
Until you're the maintainers
And watch me criticize you now
Ha-ha-ha-ha-ha.
Break it, break it, break it, Github.
Break it, break it, break it, Github.
Break it, break it, break it, Github.
Break it, break it, break it, Github.
git-blame, git-blame on this line
What the f*ck is wrong with that
Take it all and recompile
It is taking too lonnng
This code is better. This code is free
Let's clone this repo you and me.
git-blame, git-blame on this line
Is everybody in?
Don't stop, shit it, git it.
See how your team updates it
Steady, watch me navigate
Aha-ha-ha-ha-ha.
Don't stop, shit it, git it.
Peep at updates and reconvert it
Steady, watch me git reset now
Aha-ha-ha-ha-ha.
Github.
Push it, push it, push it, Github.
Push it, push it, push it, Github.
Push it, push it, push it, Github.
Push it, push it, push it, Github.2 -
Okay, story time.
Back during 2016, I decided to do a little experiment to test the viability of multithreading in a JavaScript server stack, and I'm not talking about the Node.js way of queuing I/O on background threads, or about WebWorkers that box and convert your arguments to JSON and back during a simple call across two JS contexts.
I'm talking about JavaScript code running concurrently on all cores. I'm talking about replacing the god-awful single-threaded event loop of ECMAScript – the biggest bottleneck in software history – with an honest-to-god, lock-free thread-pool scheduler that executes JS code in parallel, on all cores.
I'm talking about concurrent access to shared mutable state – a big, rightfully-hated mess when done badly – in JavaScript.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
Every time I showed my work to a JavaScript developer, I'd get negative feedback. Like, unjustified hatred and immediate denial, or outright rejection of the entire concept. Some were even adamantly trying to discourage me from this project.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
http://nexusjs.com/architecture/
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
The average JavaScript developer doesn't want a multithreaded server platform for JavaScript because it means a change of the status quo.
And this is exactly why I started this project. I wanted a highly performant JavaScript platform for servers that's more suitable for real-time applications like transcoding, video streaming, and machine learning.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
How about utilising logical CPUs to the fullest extent, and allowing them to execute JavaScript? Something that isn't even possible with the current model implemented by Node?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
Good JavaScript programming practices miraculously coincide with the best practices of thread-safety.
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18 -
Fucking teammate who did not know how to read/write a simple class diagram.
We warned him that he have to study or we just kick his fucking ass out of the team.
He just did nothing. When we had meetings he just stayed at home pretending to have an heart issue needing surgery.
After just 2-3 days he was tagged on FB in a photo shooted a few days earlier where he was riding a bike for a competition.
He skipped another scheduled-a-fucking-week-before meeting saying that he was on a surprise trip, when I called him 5 minutes before meeting start.
In the end we just kick him out because he did nothing. He went to professor talking about some relationship problem in the team and asked him if he could continue the project by himself just forking the ours.
Professor said HELL NO SON OF A BITCH.
But our team learned a precious lesson : choose your team carefully.5 -
Bro every time this guy wants to create a PR, rather than branching off another branch and raising a PR to get it merged back in, this dude creates a fork and then makes a PR to merge the fork back in.
Holy. Fuck. Please don’t do this. It makes checking out your “branch” a massive pain in the ass. Plus, it’s totally unnecessary, and I can’t even check it out to begin with because your forked repo is fucking private you stooge. If we were in completely different orgs or doing open source I’d understand a fork. Not if you’re sitting right fucking next to me!!!!!11113 -
You know you've become a true developer when you see this and immediately think about Git forking.3
-
When some one at the company decides to branch off from the main codebase and end up with several outdated and separetely modified branches for two years.
Yeah nice work genius and good luck with resolving over 250 files of merge conflicts.
Just kill me now 😭1 -
I hate stupid DirectX .x files!!!!
I can't even find a simple camera mesh and I can't use other formats for this shitty project. No forking 3d model editor/converter works properly to convert other formats to it either, and those programs look like gray dogshit too. 😠2 -
I hate people who just fork my repositories on github without starring it!! if you can go through the trouble of forking a repository why not star it too? :(5
-
Trying to pick through a recently ex-coworkers project repository... these forking commits!
Favorite might be "That was gonna mess up". So why did you commit it?
At first I was mad, but by the bottom two I was dying laughing.
I'll save you from typing out the link:
https://media1.giphy.com/media/...10 -
I just finished designing an entire asset management pipeline and christ on a fucking pogo stick, if it isn't convoluted.
Theres a lot of game engines out there, but all of them do it a little different. They all tackle a slightly different problem, without even realizing it.
1. asset management
2. asset change management
3. behavior change management
4. data management
5. combinatorial design management.
6. Combinatorial Behavior management
7. Feature completion
ASSET MANAGEMENT is exactly what it says on the tin.
ASSET CHANGE management can be thought of handling the import, export, formatting, platform specific packing, and versioning (including forking) of an asset.
BEHAVIORAL CHANGE management is a subset of asset management, because code is a subset of assets (depending on how you define 'assets'). The oldest known example of this is commenting and uncommenting code.
Or worse, printf debugging.
This can be file versioning, basic undo services, graph management of forks and mergers, toggles for features or modules, etc.
DATA management is about anything that doesn't fall into the other categories, everything from mission text to npc dialogues, quests, location names, item stats, the works. Anything you'd be tempted to put in a database, falls under this category. Haven't yet seen many engines offer this as an explicit built in tool as of yet, because the other problems are non-trivial as is, so this is a bit of low hanging fruit that gets handled by external tools, or loaded from formats as simple as json.
COMBINATORIAL DESIGN management is the idea of prefabbing, blueprints of broader object design using nested prototypes of existing game objects, to create more complex, reusable set pieces. Unity did this well. GM does this in part.
COMBINATORIAL BEHAVIOR management is entity-component systems, plus tooling to make it easy to add, remove, and configure components and their values on entity blueprints, also not uncommon. Both stencyl and unity do this. GM has a precursor to this in the form of configurable fields, but these fields are not based on component scripts attached to objects.
FEATURE COMPLETION is that set of gameplay mechanics or styles of design that an engine naturally makes easier to include or build in a game.
I don't think I'm aiming for all that, but I think at minimum a good engine has to do asset management, behavioral change management, prefabs, and entity-component systems with management tools for that. And ideally, asset change management.8 -
A lot of things give people a sense of power but someone starring and forking your public repo is waaayyyyyy up there.
You feel me?1 -
when your PM doesn't know how to use Github, and he downloads the repo,edits it and makes another repo to share it instead of just forking it -.-2
-
Whats your celebration step after a piece of code that you debugged for hours finally starts working? Do you clap, do you hurl a mouthfull at the code, do you do a moonwalk?6
-
Someone please tell me why I spent all night forking repositories in regards to quantum computing?… wtf am I gonna use simulated tensors for??? Also, what is all that stuff? I’m really just a brilliant fool.😅👁️🗨️🃏🤷🏻♂️44
-
In my early programming days when i had just started learning, I challenged myself to write a sudoku puzzle solver. Wrote a really naive backtracking solution, but i was really excited to have finished it.
-
Process forking, signal handling, socket communication and race conditions. If I smoked I would have gone through a carton today.
-
When someone says that a company is Java/Python/Ruby "shop", they are implying that company sells those programming languages instead of its products. Would you call macys/nordstorm a cottonshop? See how ridiculous that sounds!2
-
How can I get started in open source? I tried forking a repository and do a bug fix, but their code base was ugly as hell and makes me unsure about what open source projects to contribute to.6
-
Questions more then a rant...
I've moved from being a lead on imploring DevOps and Agile practices in a large Telco to now working for a security consultancy... The team I'm with are s*** hot when it comes to SecOps (which is why I changed jobs) and I've been hired to he the automation and working practice expert on the team. Already got some of them learning Ansible which is a great start!
I've got delivery now being pushed to Git and all client work being tracked in Jira and properly documented and collaborated through HipChat and other CI tools on the way....
My question is this... Does anyone have some awesome resources to teach people Git, Jira, Jenkins, etc. quickly without forking or branching out on expensive training? Focus on being a technical but consultative team. Ideally just wanna pull some awesome guides and make. My own commits on them for the team... Please fire a story or epic away!1 -
I made a custom CMS using Phalcon in PHP for a client we needed to get out of WordPress. I'm happy with it and even considered forking it into a product to expand upon and sell, but I'm starting to wonder if this is a bit behind the curve.
So if I made a CMS today, what language and database combination should I use? I went with Phalcon because I was impressed with the performance, and because I'm the most experienced with PHP, but I'm open to any and all suggestions3 -
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") -
Random : I am looking for some weight loss tips. I am about 20 pounds overweight. Anyone who overcame a similar challenge?7
-
When I reach my short term milestone, I might start dedicating my full-time to one of the following projects:
1. deno
2. brain.js
3. The forking of TypeORM
4. The teardown of Isaac Schlueter
5. Create a full on movement to rescue open source12 -
To hell with Git. I just spent the last one hour feeling weird about teaching young people how to fork remotely.4
-
Trying to explain to (a more experienced) dev why it's not a god idea to do a exec( php '/var/www/xxx >> /dev/null) and then redirect the visitor.
The script is running a query that take some time and he want's to redirect the visitor and then fetch the result with jquery.
Tried to explain parent and child processes and pointed him in the direction with pipes and bakground process. After some discussion about forking and all the cons with that.
yes its PHP ;)
Gonna be exiting to see his next idea :S -
Power BI: wonderful tool, pretty graphics, and can do a lot of powerful stuff.
But it’s also quite frustrating when you want to do advanced things, as it’s such a closed platform.
* No way to run powerquery scripts in a command line
* Unit testing is a major pain, and doesn’t really test all the data munging capabilities
* The various layers (offline/online, visualisation, DAX, Powerquery, Dataset, Dataflow) are a bit too seamless: locating where an issue is happening when debugging can be pain, especially as filtering works differently in Query Editing mode than Query Visualisation mode.
And my number 1 pet peeve:
* No version control
It’s seriously disconcerting to go back to a no version control system, especially as you need to modify “live code” sometimes in order to debug a visual.
At best, I’ve been looking into extracting the code from the file, and then checking that into git, but it’s still a one-way street that means a lot of copying and pasting back into the program in order to roll back, and makes forking quite difficult.
It’s rewarding to work with the system, but these frustrations can really get to me sometimes2 -
So I was on github today and this teenager came up to me and asked what I was doing but I was too chill to answer at that time.
My screen read "Forking in progress" and now he's been saying it over and over again and thinks it's funny.
*smh*1 -
Im amazed by people ranting on CoC, whining that is end of the meritocracy but at the same time have nothing against kicking out Hans Reisers legacy. After all ReiserFS is a fine piece of software. It's just that his aspie took over as he killed his wife. Where were those wankers when Reiser was going to prison? They could do great job on forking, renaming and supporting reiserfs. But no, it's easier to cry about sjw and stuff, than saving neat code.8
-
Python muses me sometimes.
Gunicorn has a preload mode. It enables forking...
So Gunicorn starts, when Gunicorn loaded it forks the workers (Uvicorn / FastAPI in my case).
https://github.com/tiangolo/...
So if we add a function that creates the app... this function will be executed before forking, thus the memory at the state of creating the app will be duplicated.
You can thus spawn 40 workers, they would all have the same ML models.
Or in my case a client who does some things that should only be run by a single thread (with locking).
So the client has a cache, as long as I load the cache during the create_app phase, the cache will be shared between all instances and not created per instance.
It's ... Such a small detail. So simple.
Yet completely fucks my brain.
It's logical, yes. I understand what it does, yes.
But it still makes my brain fart. -
It is clear to everyone that Windows is a piece of crap in every possible way.
But I don't understand one thing. Unix existed before Windows. It has always been superb.
Why did Microsoft develop a whole bew crappy OS, instead of keeping Xenix(I know it was licensed) or forking a Unix-like os like Apple did with NeXTSTEP?
Imagine a world where every os is unix like. So wonderful.2 -
What are your favorite intellij themes apart from darcula and whatever that default bright thing is called?2
-
I'm migrating a node app from rh6 to 7, initd to systemd...
Init.d runs start.sh which then spawns calls pm2 with the args. The problem though seems to be (I set the service to be forking otherwise it doesn't let it or kills the child threads?) But then there service then says it fails since I guess the script exited by itself...
And therefore the stop didn't work either?
I just need a service that acts as a link? To the actual start stop scripts and just run them? Without killing the could orocesses7