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 - "flexibility"
-
As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.
I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.
These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.
Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.
All I want to say is:
No time was lost.
This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.
Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.
One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.
You don't notice the things you take back from your failures, they slip back sticking to you, undetected.
You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.
You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.
You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.
Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.
Please, for the love of code...
Start and fail as many projects as you can.30 -
Hey everyone,
We have a few pieces of news we're very excited to share with everyone today. Apologies for the long post, but there's a lot to cover!
First, as some of you might have already seen, we just launched the "subscribed" tab in the devRant app on iOS and Android. This feature shows you a feed of the most recent rant posts, likes, and comments from all of the people you subscribe to. This activity feed is updated in real-time (although you have to manually refresh it right now), so you can quickly see the latest activity. Additionally, the feed also shows recommended users (based on your tastes) that you might want to subscribe to. We think both of these aspects of the feed will greatly improve the devRant content discovery experience.
This new feature leads directly into this next announcement. Tim (@trogus) and I just launched a public SaaS API service that powers the features above (and can power many more use-cases across recommendations and activity feeds, with more to come). The service is called Pipeless (https://pipeless.io) and it is currently live (beta), and we encourage everyone to check it out. All feedback is greatly appreciated. It is called Pipeless because it removes the need to create complicated pipelines to power features/algorithms, by instead utilizing the flexibility of graph databases.
Pipeless was born out of the years of experience Tim and I have had working on devRant and from the desire we've seen from the community to have more insight into our technology. One of my favorite (and earliest) devRant memories is from around when we launched, and we instantly had many questions from the community about what tech stack we were using. That interest is what encouraged us to create the "about" page in the app that gives an overview of what technologies we use for devRant.
Since launch, the biggest technology powering devRant has always been our graph database. It's been fun discussing that technology with many of you. Now, we're excited to bring this technology to everyone in the form of a very simple REST API that you can use to quickly build projects that include real-time recommendations and activity feeds. Tim and I are really looking forward to hopefully seeing members of the community make really cool and unique things with the API.
Pipeless has a free plan where you get 75,000 API calls/month and 75,000 items stored. We think this is a solid amount of calls/storage to test out and even build cool projects/features with the API. Additionally, as a thanks for continued support, for devRant++ subscribers who were subscribed before this announcement was posted, we will give some bonus calls/data storage. If you'd like that special bonus, you can just let me know in the comments (as long as your devRant email is the same as Pipeless account email) or feel free to email me (david@hexicallabs.com).
Lastly, and also related, we think Pipeless is going to help us fulfill one of the biggest pieces of feedback we’ve heard from the community. Now, it is going to be our goal to open source the various components of devRant. Although there’s been a few reasons stated in the past for why we haven’t done that, one of the biggest reasons was always the highly proprietary and complicated nature of our backend storage systems. But now, with Pipeless, it will allow us to start moving data there, and then everyone has access to the same system/technology that is powering the devRant backend. The first step for this transition was building the new “subscribed” feed completely on top of Pipeless. We will be following up with more details about this open sourcing effort soon, and we’re very excited for it and we think the community will be too.
Anyway, thank you for reading this and we are really looking forward to everyone’s feedback and seeing what members of the community create with the service. If you’re looking for a very simple way to get started, we have a full sample dataset (1 click to import!) with a tutorial that Tim put together (https://docs.pipeless.io/docs/...) and a full dev portal/documentation (https://docs.pipeless.io).
Let us know if you have any questions and thanks everyone!
- David & Tim (@dfox & @trogus)53 -
Current PM in the morning: "Startup flexibility! I'm at the beach chilling in the sun! I trust you can do standup without me! #tech-detox #positive-energy"
Current PM in the afternoon: "ARE ALL THE FUCKING TASKS FUCKING DONE YET? THERE ARE ONLY 9 DAYS LEFT IN THE FUCKING SPRINT! WHY HAS NOTHING BEEN DEPLOYED YET?"
This is why I hate wireless earbuds: You don't have a wire available for strangling coworkers.13 -
Dev manager: great news guys. We’ve built a new tool to do automated testing on apps. We’ve gotten rid of the old Appium solution we were using and built this new one.
Me: why not just use the inbuilt native stuff? Click to record works really well.
Manager: nah we thought it would be more flexible to build it ourself.
Me: ... ok ... moving on ... how does it work?
Manager: well this new .jar, you download it, pass in a config file, setup up your simulator and appium and the jar will do everything for you.
Me: ... wait you said you hate Appium? Now you’ve built a wrapper around it? And it doesn’t even set everything up, you’ve to do it all by hand?
Manager: oh we had too, would be too much effort to replace it. Don’t worry we can now write all our tests in .yaml config files instead of using Appium.
Me: so we’ve lost the ability of auto-complete and type ahead, everyone has to upskill on a new tool, it offers no new features over what’s available out of the box and we’ll have to deal with new bugs and maintenance and stuff our self ... because we need more flexibility?
Manager: oh don’t worry. The guy who built it is staying here. He’s going to deal with bug fixes and add features. He’s only one guy, but he’s really sharp, it’ll be great for us and the team.
Me: ... ... ...
*audible noise of soul breaking*
Me: ... ok thank you. I’ll look into this new tool3 -
TL;Dr be specific, it's actually helpful.
Client rings... "The internet is down"
Me "ok where are you exactly and how are you connecting"
"Ugh the WiFi! Just fix it"
"Ok but where are you?"
"At $companyname"
"Ok and which wi..."
"The wifi?!! Can you do anything right?"
Well... I'm allowed flexibility in terms of pleasantry...
"Ok, there are 3 buildings, 55 rooms, 2 SSID's, 17 access points, 3 routers a RADIUS server and 2 gateways... Be specific or I'll do nothing"
Simple reboot of an access point, but c'mon... It's not a secret where you are7 -
Fun fact: the cape of the Batman in the arkham game series was the responsibility of one guy, and it took him 2 years to provide the perfect flexibility, fluidity and strectchibility to it for the final installment of the game arkham knight.4
-
Please. Hear me out.
I've been doing frontend for six years already. I've been a junior dev, then in was all up to the CTO. I've worked for very small companies. Also, for the very large ones. Then, for huge enterprises. And also for startups. I've been developing for IE5.5, just for fun. I've done all kinds of stuff — accessibility, responsive design (with or without breakpoints), web components, workers, PWA, I've used frameworks from Backbone to React. My favourite language is CSS, and you probably know it. The bottom line is, you name it — I did it.
And, I want to say that Safari is a very good browser.
It's very fast. Especially on M1 Macs. Yes, it lacks customization and flexibility of Firefox, but general people, not developers, like to use it. Also, Safari is very important — Apple is a huge opposing force to Google when it comes to web standards. When Google pushes their BS like banning ad blockers, Apple never moves an inch. If we lose Safari, you'll notice.
As for the Safari-specific bugs situation, well… To me, Safari serves as a very good indicator: if your website breaks in Safari, chances are you used some hacks that are no good. Safari is a good litmus test I use to find the parts of my code that could've been better.
The only Safari-specific BUG I encountered was a blurry black segment in linear gradients that go from opaque to transparent. So, instead of linear-gradient(#f00, transparent), just do linear-gradient(#f00f, #f000).
This is the ONLY bug I encountered. Every single time my website broke in Safari other than that, was for some ugly hack I used.
You don't have to love it. I don't even use it, my browser of choice is Firefox. But, I'm grateful to Safari, just because it exists. Why? Well, if Safari ceases to exist, Google will just leave both W3C and WhatWG, and declare they'll be doing things their way from now on. Obey or die.
Firefox alone is just not big enough. But, together with Safari, they oppose Google's tyranny in web standards game.
Google will declare the victory and will turn the web into an authoritarian dictatorship. No ad blockers will be allowed. You won't be able to block Google's trackers. Google already owns the internet, well, almost, and this will be their final, devastating victory.
But Safari is the atlas that keeps the web from destruction.22 -
Today I got myself a "Surface Go".
I thought that it will be too cramped/small for web-developement, but now that I have one I am really surprised about the power/flexibility that this thing serves.
GG Microsoft, you have done something right.19 -
For almost twenty years I have sheltered in the protective, safe, warm bosom of Debian. For a long time, it had the largest body of available software of all the distros, and by far when Ubuntu rose to prominence. So I used Ubuntu for years for the depth of package availability, and because if something esoteric was released, it would almost certainly come out first on Ubuntu, and sometimes only on Ubuntu. I was happy. Things were good.
But over time, Ubuntu and even Debian started to lean harder and harder on gnome, which I've always hated, along with all desktop environments, as they obscure the system from the user, and introduce graphical layers of abstraction, so the actual job of getting things done becomes a black art, hidden behind gnome-specific tools. This is my preference, and It's been disheartening in recent years to see the direction the desktop appears to be taking.
Then I joined devrant in 2017, and until then, I had heard peripherally about Arch, but never more than that. I had not heard of Manjaro at all. People started posting success stories and happy screenshots, and I was intrigued.
In 2018 I built a windows machine to use for parsec streaming games that wouldn't run on my linux rig. For not a great deal of money, I built a solid machine that's unequivocally better than any machine I've ever used, and installed windows on it. For a while, I was pleased. I had the best of both worlds: a windows box to stream some games from, and a linux desktop for everything else.
But after a couple months, as proton matured, I found fewer and fewer reasons to use my windows machine. My use of it declined to where I was last week: it had been months since I'd even powered it on. It was the most powerful machine I've ever used, and it was just collecting dust behind the TV in the living room. The full realization came to me while I was fighting a battle in the Gnome Takeover War, and I realized: I don't have to do this.
I pulled the newer machine out from behind the TV and installed Manjaro architect edition on it. The flexibility in the install was staggering. I am using nilfs2 for my /boot and / partitions: an option that Ubuntu has never offered. Normally they just default you into the garbage ext4 filesystem, and if you can dig deep enough, you can install with something else, though you have to really want it, in my opinion.
But Manjaro has been a dream-come-true. Pacman is easily the best package manager I have ever used, and pamac's intuitive and easy commands are a great view into AUR. Booting into the virtual console instead of a display manager has been wonderful too. On Ubuntu, I had to disable systemd's version of runlevel 5 to even get it working. But I just popped my xrandr script into my .xinitrc, and X opens with startx in less than a second. On Ubuntu, it takes about 5-10 seconds.
This has nothing to do with Manjaro, but I also switched to Radeon for this install, and I couldn't be happier about that. No more "installing" nvidia's drivers.
No more gnome. No more PPAs. No more settling. I am a Manjaro user now. Full stop. Thank you, devrant, for bringing it to my attention.11 -
[long]
When searching for internship via school I found this small startup with this cute project of building a teaching tool for programming. There were back then 2 programmers: the founder and the co-founder.
Then like 1 week before the internship started, the co-founder had a burnout and had to get off the project, while the company was so low on budget the founder, aka my new b0ss, had to work separate jobs to keep the company alive. (quite metal tbh)
It's funny because I'm a junior developer, 100%. I've been coding as a hobby for around 8 years now but I've never worked in a big company before. (No exception to this workplace either)
First project I get: rewrite the compiler. The Python compiler.
"But wait, why not just embed a real compiler from the first case?"
-nanananana it's never simple, as you probably know from your own projects.
The new compiler, as compared to existing embedded compiler solutions out there, needed these prime features:
- Walk through the code (debugger style), but programmatically.
- Show custom exceptions (ex: "A colon is needed at the end of an if-statement" instead of "Syntax error line 3")
- Have a "Did-you-mean this variable?" error for usage of unassigned variables.
- Be able to be embedded in Unity's WebGL build target
All for the use case of being a friendly compiler.
The last dash in the list is actually the biggest bottleneck which excluded all existing open-source projects (i could find). Compliant with WebAssembly I can't use threads among other things, IL2CPP has lots of restrictions, Unity has some as well...
Oh and it should of course be built using test-driven development.
"Good luck!" - said the founder, first day of work as she then traveled to USA for **3 weeks**, leaving me solo with the to-be-made codebase and humongous list of requirements.
---
I just finished the 6th week of internship, boss has been at "HQ" for 3 weeks now, and I just hit the biggest milestone yet for this project.
Yes I've been succeeding! This project has gone so well, and I'm surprising myself how much code I've been pumping out during these weeks.
I'm up now at almost 40'000 lines of source and 30'000 lines of code. ‼
( Biggest project I've ever worked on previously was at 8'000 lines of code )
The milestone (that I finished today) was for loops! As been trying to showcase in the GIF.
---
It's such a giant project and I can honestly say I've done some good work here. Self-five. Over-performing is a thing.
The things that makes me shiver though is that most that use this application will never know the intricates of it's insides, and the brain work put into it.
The project is probably over-engineered. A lot. Having a home-made compiler gives us a lot of flexibility for our product as we're trying to make more of a "pedagogic IDE". But no matter that I reinvented the wheel for the 105Gth time, it's still the most fun I've had with a project to date.
---
Also btw if anyone wants to see source code, please give me good reasons as I'm actively trying to convince my boss to make the compiler open-source.
Cheers!4 -
A new guy was brought on to help with a particular part of my program.
He worked on it for a little while and got something working. But honestly the code hurts me. And not because I'm some arrogant prick, but because there's something about the way it's written that's really bothering me.
I was saying to my girlfriend that I don't mind people helping me out and adding new features. Usually they bring something to my attention that I otherwise would have never thought of.
However, in this case I was told to back off completely. This of course, makes sense, we don't want to be stepping on each other's toes. But now that he's sort of done, I've taken a look around at it is really getting to me.
They've placed redundant pieces of code in places that I would have never done. And objects have been made that seem to only match precisely one particular use case.
I had overhauled this program with flexibility in mind a while back, and now I feel like it's doing a 180 again simply because the client is getting impatient.1 -
"The aim is to develop highly robust data streams so we have the flexibility to build and evolve the user interface without having to change code in the API"
Oh, is that all you need?4 -
Programmer: We really have to refactor the codebase!
Director: That's not important. Do you think our customer would care what it looks like under the hood if we are selling cars?
One year after...
VP: We need to build a new platform for flexibility!
Director: Let's rewrite!1 -
I’ve come to the conclusion that developers who like react have never used it for anything even remotely complicated.
Because here’s reacts dirty little secret; it doesn’t scale. Not even a little. It’s flexible, but that leads to every developer writing their code in a different way.
It’s simple and easy for simple side projects, but as soon as you have to pass state to a child component, you’re fucked. And god help you if you’re modifying the state in said child component. You can try using redux, but that’s a bandaid solution to the real issue.
There are better alternatives, namely Vue. There’s no need to write unintelligible code that’s a mutated hybrid of html css and js. We as web developers realized mixing these technologies was a bad idea a long time ago.
React simply doesn’t scale. It’s flexibility, complexity, and the awful code quality it leads to makes it a nightmare for large projects with multiple developers
Some of its concepts are interesting and useful though. It’s functional concepts allow for easy code reuse, among the other benefits associated with functional programming
I sincerely hope that the hype around react dies out, and a new framework emerges that takes the best from react and fixes the glaring issues it currently has23 -
Final interview for a native Android remote job via Skype
Client: Should we make a hybrid app instead?
Me inside: fucking hybrid app, hell no, the job posting was for a native mobile dev, and hybrid apps are shit
Me: We could have so much flexibility and can adjust so much better in the future when adding features when we go for a native mobile app
*phew* I almost lost my calm back there -
Definitely Docker.
Do whatever you want, whenever you want.
The pinnacle of flexibility.
Try out everything, without installing anything.
Deploy with the same environment you're developing with on your local machine.
It's brilliant! -
I am of the firm belief that a function should always return just one type.
I think it's the most convoluted thing that a function should be allowed to return any kind of type.
I've seen shit like return a string when something is valid and then a boolean if it's not valid.
To me, that kind of flexibility has some funky code smell.
I'm looking at you WordPress 🤨11 -
[Warning! - Sob story ahead, you've been warned]
Dear devRant,
today someone who interviewed me in the last days, said they want to hire me.
Good news, right?
Professionally speaking yes, but... i don't know.
I always been a freelance: never had much work, but i was always free of doing whatever i liked and whenever (no fixed working hours).
I have a room in an office with 2 other people. People i love to hate (it's complicated).
But now i'm thinking about this new work they are offering me: no more freelance, no office, no flexibility. All with a 6 months contract.
What really scares me is that i will lose what i have... even the 2 co-workers that i hate/love: i have never been able to make friends, they are the thing that comes closer to friends in my life.
I'm feeling a void in front of me:
being an adult (35 years old...) and choose a work that pays, but loose... essentially what i am, what i have hardly build...
OR decline the job, and going on "Peter-Pan-style", living at my pace: free but constantly hoping of something good to happen to me
I don't know, really don't know... so many feeling are overwhelming me now.
And tomorrow i have to make a decision5 -
Central team: No, your team must be doing something wrong. Our pipeline is super-configurable and works for any situation! You just have to read the docs!
Me: Where are the docs?
Central team: Uhh, well, umm... we'll hook you up with a CI/CD coach!
Me: Okay, cool. In the mean time, can you point me at the repo where all the base scripts are?
Central team: Sure, it's here.
Me, some weeks later: Yeah, uhh, the coach can't seem to figure out how to make our Prod deployment work either.
Central team: That's impossible! It's so easy and completely configurable!
Me: Well, okay... but, here's the thing: your pipeline IS pretty "configurable", in the sense that you look for A LOT of variables...
Central team: See! We told you!
Me: ...none of which are actually documented, so they're just about useless to me...
Central team: But, but the coach...
Me: ...couldn't make heads or taisl of it either despite him literally being ON YOUR TEAM...
Central team: Then your project must just be architected wrong!
Me: Well, we're not perfect, so could be...
Central team: Right!
Me: ...but I think it's far more likely that the scripts... you know, the ACTUAL Python scripts the pipeline executes... while it took me DAYS to get through all your levels of abstraction and indirection and, well, BULLSHIT... it turns out they are incredibly NOT flexible. They do one thing, all the time, basically disregarding any flexibility in the pipeline. So, yeah, I'm thinking this is probably one of this "it's you, not me" deals.
Central team: Waaaaahhhhhhhh!!!!!!2 -
dev, ~boring
This is either a shower thought or a sober weed thought, not really sure which, but I've given some serious consideration to "team composition" and "working condition" as a facet of employment, particularly in regard to how they translate into hiring decisions and team composition.
I've put together a number of teams over the years, and in almost every case I've had to abide by an assemblage of pre-defined contexts that dictated the terms of the team working arrangement:
1. a team structure dictated to me
2. a working temporality scheme dictated to me
3. a geographic region in which I was allowed to hire
4. a headcount, position tuple I was required to abide by
I've come to regard these structures as weaknesses. It's a bit like the project management triangle in which you choose 1-2 from a list of inadequate options. Sometimes this is grounded in business reality, but more often than not it's because the people surrounding the decisions thrive on risk mitigation frameworks that become trickle down failure as they impose themselves on all aspects of the business regardless of compatibility.
At the moment, I'm in another startup that I have significantly more control over and again have found my partners discussing the imposition of structure and framework around how, where, why, who and what work people do before contact with any action. My mind is screaming at me to pull the cord, as much as I hate the expression. This stems from a single thought:
"Hierarchy and structure should arise from an understanding of a problem domain"
As engineers we develop processes based on logic; it's our job, it's what we do. Logic operates on data derived from from experiments, so in the absence of the real we perform thought experiments that attempt to reveal some fundamental fact we can use to make a determination.
In this instance we can ask ourselves the question, "what works?" The question can have a number contexts: people, effort required, time, pay, need, skills, regulation, schedule. These things in isolation all have a relative importance ( a weight ), and they can relatively expose limits of mutual exclusivity (pay > budget, skills < need, schedule < (people * time/effort)). The pre-imposed frameworks in that light are just generic attempts to abstract away those concerns based on pre-existing knowledge. There's a chance they're fine, and just generally misunderstood or misapplied; there's also a chance they're insufficient in the face of change.
Fictional entities like the "A Team," comprise a group of humans whose skills are mutually compatible, and achieve synergy by random chance. Since real life doesn't work on movie/comic book logic, it's easy to dismiss the seed of possibility there, that an organic structure can naturally evolve to function beyond its basic parts due to a natural compatibility that wasn't necessarily statistically quantifiable (par-entropic).
I'm definitely not proposing that, nor do I subscribe to the 10x ninja founders are ideal theory. Moreso, this line of reasoning leads me to the thought that team composition can be grown organically based on an acceptance of a few observed truths about shipping products:
1. demand is constant
2. skills can either be bought or developed
3. the requirement for skills grows linearly
4. hierarchy limits the potential for flexibility
5. a team's technically proficiency over time should lead to a non-linear relationship relationship between headcount and growth
Given that, I can devise a heuristic, organic framework for growing a team:
- Don't impose reporting structure before it has value (you don't have to flatten a hierarchy that doesn't exist)
- crush silos before they arise
- Identify needed skills based on objectives
- base salary projections on need, not available capital
- Hire to fill skills gap, be open to training since you have to pay for it either way
- Timelines should always account for skills gap and training efforts
- Assume churn will happen based on team dynamics
- Where someone is doesn't matter so long as it's legal. Time zones are only a problem if you make them one.
- Understand that the needs of a team are relative to a given project, so cookie cutter team composition and project management won't work in software
- Accept that failure is always a risk
- operate with the assumption that teams that are skilled, empowered and motivated are more likely to succeed.
- Culture fit is a per team thing, if the team hates each other they won't work well no matter how much time and money you throw at it
Last thing isn't derived from the train of thought, just things I feel are true:
- Training and headcount is an investment that grows linearly over time, but can have exponential value. Retain people, not services.
- "you build it, you run it" will result in happier customers, faster pivoting. Don't adopt an application maintenance strategy
/rant2 -
Speaking of fragile environments, what the hell is going on with the absolute dependency on python...?
I mean, I'm as reluctant to upgrade my system's python version as libc's.
How to break at least half of your system:
1. python3 --version
Python 3.8.10
2. rm -f /usr/bin/python3
3. ln -s /usr/bin/python3.13 /usr/bin/python3
And good luck opening most of the UI utilities and some of the terminal-based ones.
wtf... While everyone's barking at systemd, python quietly crawls in and claims the system's flexibility for itself w/o any resistance.
I imagine that's one of the aspects making NixOS a resilient solution...12 -
People talk about how the use of Linux as a desktop requires an inordinate amount of time, as if that's a unique problem in Linux. There is no such thing as an operating system that I don't spend weeks and months tweaking to make my own.
The difference is that Linux doesn't resist me like other OSes.2 -
So yeah XML is still not solved in year 2018. Or so did I realize the last days.
I use jackson to serialize generic data to JSON.
Now I also want to provide serialization to XML. Easy right? Jackson also provides XML serialization facitlity similar to JAXB.
Works out of the box (more or less). Wait what? *rubbing eyes*
<User>
<pk>234235</pk>
<groups typeCode="usergroup">
<pk>6356679041773291286</pk>
</groups>
<groups typeCode="usergroup">
<pk>1095682275514732543</pk>
</groups>
</User>
Why is my groups property (java.util.Set) rendered as two separate elements? Who the fuck every though this is the way to go?
So OK *reading the docs* there is a way to create a collection wrapper. That must be it, I thought ...
<User typeCode="user">
<pk>2540591810712846915</pk>
<groups>
<groups typeCode="usergroup">
<pk>6356679041773291286</pk>
</groups>
<groups typeCode="usergroup">
<pk>1095682275514732543</pk>
</groups>
</groups>
</User>
What the fuck is this now? This is still not right!!!
I know XML offers a lot of flexibility on how to represent your data. But this is just wrong ...
The only logical way to display that data is:
<User typeCode="user">
<pk>2540591810712846915</pk>
<groups>
<groupsEntry typeCode="usergroup">
<pk>6356679041773291286</pk>
</groupsEntry>
<groupsEntry typeCode="usergroup">
<pk>1095682275514732543</pk>
</groupsEntry>
</groups>
</User>
It would be better if the individual entries would be just called "group" but I guess implementing such a logic would be pretty hard (finding a singular of an arbitrary word?).
So yeah theres a way for that * implementing a custom collection serializer* ... wait is that really the way to go? I mean common, am I the only one who just whants this fucking shit just work as expected, with the least amount of suprise?
Why do I have to customize that ...
So ok it renders fine now ... *writes test for it+
FUCK FUCK FUCK. why can't jackson not deserialize it properly anymore? The two groups are just not being picked up anymore ...
SO WHY, WHY WHY are you guys over at jackson, JAXB and the like not able to implement that in the right manner. AND NOT THERE IS ONLY ONE RIGHT WAY TO DO IT!
*looks at an apple PLIST file* *scratches head* OK, gues I'll stick to the jackson defaults, at least it's not as broken as the fucking apple XML:
<plist version="1.0">
<dict>
<key>PayloadOrganization</key>
<string>Example Inc.</string>
<key>PayloadDisplayName</key>
<string>Profile Service</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist
I really wonder who at apple has this briliant idea ...2 -
People talk about how the Linux desktop is coming along. I don't really give a shit about Linux's viability as a desktop OS, or attempts to give it general appeal. In my opinion, that just introduces hits in performance and flexibility. It's a great desktop because I know what I'm doing. I want that. That doesn't have great appeal, but I don't care. Gnome, Unity, KDE, and Cinnamon are user friendly, but heavy as fuck.5
-
Is it so much to ask for ability to do my job remotely. I work on a fucking computer, I can do this shit at home. I don't need to drive 50 miles there and back to do my job.
Flexibility is a thing.5 -
Me: I think our customer should have to specify this thing.
Someone else: Let's do what we can to be really flexible for them.
Me Later: Yeah well our super flexibility now makes these queries they want impossible .....2 -
It's 6am and I've already started my work day because I am my most productive first thing in the morning. When they debate against WFH and flexibility, they don't talk about how different people feel more awake and present at different times. I know devs who work better in the dead of the night. 9 to 5 in office just ain't it.7
-
Just needing somewhere to let some steam off
Tl;dr: perfectly fine commandline system is replaced by bad ui system because it has a ui.
For a while now we have had a development k8s cluster for the dev team. Using helm as composing framework everything worked perfectly via the console. Being able to quickly test new code to existing apps, and even deploy new (and even third party apps) on a simar-to-production system was a breeze.
Introducing Rancher
We are now required to commit every helm configuration change to a git repository and merge to master (master is used on dev and prod) before even being able to test the the configuration change, as the package is not created until after the merge is completed.
Rolling out new tags now also requires a VCS change as you have to point to the docker image version within a file.
As we now have this awesome new system, the ops didn't see a reason to give us access to kubectl. So the dev team is stuck with a ui, but this should give the dev team more flexibility and independence, and more people from the team can roll releases.
Back to reality: since the new system we have hogged more time from ops than we have done in a while, everyone needs to learn a new unintuitive tool, and the funny thing, only a few people can actually accept VCS changes as it impacts dev and prod. So the entire reason this was done, so it is reachable to more people, is out the window.3 -
I mean, ONE of these days, the Prod pipeline has GOT to work... doesn't it?? Just basic odds say EVENTUALLY it will, doesn't it??
Of course, I'm sure I could have had it working long ago if not for the fact that we have to use common scripts developed by another team that we can't alter, and just guess where the problem is.
You know, standardization and DRY are good principles generally, but if you just apply them without thinking and without at least SOME flexibility, you only make matters worse.2 -
Don't you just love it when a department buys a software for the company without consulting IT and Data Management departments? You know to discuss integration, flexibility, compatibility and all that?
Don't you love it even more when the users of this new software then complain about the different tools that have to learn and the workflow being completely scattered?
But hey, they work in administration, so I'm sure they know what they are doing. ⚡⚡⚡4 -
I got notified that tomorrow I'm gonna start a porting project from a FileNet ecosystem.
Well, I don't know what is FileNet, but at least I've enough time to study its architecture. Let's start from the official IBM page:
The FileNet® P8 platform offers enterprise-level scalability and flexibility to handle the most demanding content challenges, the most complex business processes, and integration to all your existing systems. FileNet P8 is a reliable, scalable, and highly available enterprise platform that enables you to capture, store, manage, secure, and process information to increase operational efficiency and lower total cost of ownership.
Thank you IBM, now I surely know how to use FileNet. Well, I hope that wikipedia explains me what it is:
FileNet is a company acquired by IBM, developed software to help enterprises manage their content and business processes.
Oh my god. I tried searching half an hour so far and everything I found was just advertisements and not a clue about what it is.
Then they wonder why I hate IBM so much4 -
!Rant
A couple hours ago I had an "interview".
It was like that:
- Show me your SQL skills, select from 2 tables, aliases, groups
-- Passed
- Ok, Now you have to learn Visual Basic .NET for getting this job, your first task is to create a simple calculator
My mind just exploded. Visual Basic?!? Noooo.... Really? I don't want to learn that Microsoft shit.... But it's good paid work so I'm trying it right now.
To be honest? I'm suprised, it's not that bad and I think that problems are not in languages, it's about cooperation, flexibility and enthusiasm to solve problems.
So don't judge programming languages and solve problems with them.
Still hate pascal and my English🤔
P.S.: Boss is amazing, smart....2 -
Any former freelancers who decided to move to traditional employment?
I have been doing freelance since I finished University. 8 years now. I really liked the flexibility and opportunity to work on different projects and people, but my enthusiasm is wearing thin. I'm currently updating my cv and setting up my LinkedIn profile, but it's hard to "prove" my experience, and many projects I worked on are private.
I am not sure if I can mention the companies I worked for, or how do to it... Feeling lost and doomed to keep freelancing.
Anyone made this transition before? How did you do it?5 -
So, I've had a personal project going for a couple of years now. It's one of those "I think this could be the billion-dollar idea" things. But I suffer from the typical "it's not PERFECT, so let's start again!" mentality, and the "hmm, I'm not sure I like that technology choice, so let's start again!" mentality.
Or, at least, I DID until 3-4 months ago.
I made the decision that I was going to charge ahead with it even if I started having second thoughts along the way. But, at the same time, I made the decision that I was going to rely on as little external technology as possible. Simplicity was going to be the key guiding light and if I couldn't truly justify bringing a given technology into the mix, it'd stay out.
That means that when I built the front end, I would go with plain HTML/CSS/JS... you know, just like I did 20+ years ago... and when I built the back end, I'd minimize the libraries I used as much as possible (though I allowed myself a bit more flexibility on the back end because that seems to be where there's less issues generally). Similarly, any choice I made I wanted to have little to no additional tooling required.
So, given this is a webapp with a Node back-end, I had some decisions to make.
On the back end, I decided to go with Express. Previously, I had written all the server code myself from "first principles", so I effectively built my own version of Express in other words. And you know what? It worked fine! It wasn't particularly hard, the code wasn't especially bad, and it worked. So, I considered re-using that code from the previous iteration, but I ultimately decided that Express brings enough value - more specifically all the middleware available for it - to justify going with it. I also stuck with NeDB for my data storage needs since that was aces all along (though I did switch to nedb-promises instead of writing my own async/await wrapper around it as I had previously done).
What I DIDN'T do though is go with TypeScript. In previous versions, I had. And, hey, it worked fine. TS of course brings some value, but having to have a compile step in it goes against my "as little additional tooling as possible" mantra, and the value it brings I find to be dubious when there's just one developer. As it stands, my "tooling" amounts to a few very simple JS scripts run with NPM. It's very simple, and that was my big goal: simplicity.
On the front end, I of course had to choose a framework first. React is fine, Angular is horrid, Vue, Svelte, others are okay. But I didn't want to bother with any of that because I dislike the level of abstraction they bring. But I also didn't want to be building my own widget library. I've done that before and it takes a lot of time and effort to do it well. So, after looking at many different options, I settled on Webix. I'm a fan of that library because it has a JS-centric approach. There's no JSX-like intermediate format, no build step involved, it's just straight, simple JS, and it's powerful and looks pretty good. Perfect for my needs. For one specific capability I did allow myself to bring in AnimeJS and ThreeJS. That's it though, no other dependencies (well, at first, I was using Axios because it was comfortable, but I've since migrated to plain old fetch). And no Webpack, no bundling at all, in fact. I dynamically load resources, which effectively is code-splitting, and I have some NPM scripts to do minification for a production build, but otherwise the code that runs in the browser is what I actually wrote, unlike using a framework.
So, what's the point of this whole rant?
The point is that I've made more progress in these last few months than I did the previous several years, and the experience has been SO much better!
All the tools and dependencies we tend to use these days, by and large, I think get in the way. Oh, to be sure, they have their own benefits, I'm not denying that... but I'm not at all convinced those benefits outweighs the time lost configuring this tool or that, fixing breakages caused by dependency updates, dealing with obtuse errors spit out by code I didn't write, going from the code in the browser to the actual source code to get anywhere when debugging, parsing crappy documentation, and just generally having the project be so much more complex and difficult to reason about. It's cognitive overload.
I've been doing this professionaly for a LONG time, I've seen so many fads come and go. The one thing I think we've lost along the way is the idea that simplicity leads to the best outcomes, and simplicity doesn't automatically mean you write less code, doesn't mean you cede responsibility for various things to third parties. Those things aren't automatically bad, but they CAN be, and I think more than we realize. We get wrapped up in "what everyone else is doing", we don't stop to question the "best practices", we just blindly follow.
I'm done with that, and my project is better for it! -
I love to develop for the web, i find JavaScript a nice language and I love the unmatched flexibility of the web platform but i hate when I have to work with the unstable or badly documented APIs which seems to be the norm in the enterprise world: wasting hours in forced breaks because suddenly the API returns nothing but 503 or the VPN suddenly dies, wasting lot of time to find the documentation you need in the slow and cumbersome enterprise API manager, making lots of tests with cURL/Paw/Postman/wethever trying to find out why a request which should work just doesn't... in these moments I envy desktop and mobile devs. The worst part of it is which microservices made everything worse since nowadays there are way more "moving parts" which can break making the API you need unavailable and unlike with monoliths often it's hard to just clone a back-end, populate a database and then work fully locals since now everything depends on a lots of things which are hard/almost impossible to replicate on your laptop.1
-
Today I implemented a system for storing all errors in a global store in Vue. That means field validation errors, API errors and potential generic errors. It works really well, and displaying an error is as simple as referencing it's source, if any. Flexibility at its finest.
-
The genius design of “Techno-city”, now defunct tech retailer.
By merely rearranging letters of the brand name, designers created a whole narrative. The flexibility of Russian language allows that.
Translation:
They aren't Sith
Techno-city
Shadows of their cells
There are hundreds of them
They bring networks
This packet carries them
Carry the next big thing1 -
Recently I've been working on an ERP in logistics, and I was doing it solo. Gotta say that it's a big mistake to take this up alone, and architected the whole system based on the flexibility of scale. It took me more than 7 months to bang enough walls to realize that tech work is not what it used to be.
As of now there are a slew of meetings that I need to go to. It pretty much felt like the client was trying to find faults in my work.
Software timeline estimation becomes irrelevant, and work still needs to continue on anyways. At this point, I really do feel like giving up and just be a product manager instead. What say you?1 -
I prefer to build my solutions bottom-up, creating a component right after identifying the need for it but before whatever would be using it, because this gives me the flexibility to think about the problem in the general sense and produce an optimal solution without overspecialization.
VSCode's Rust plugin is a bit overzelous about dead code detection and runs it whenever the codebase is deemed to be correct, highlighting every item that isn't referenced from main, even if it is referenced from something else that's unreferenced.
Whenever I finally defeat the borrow checker and produce a correct solution my entire codebase lights up in yellow like a christmas tree and I'm completely addicted to this. -
v0.0005a (alpha)
- class support added to lua thanks to yonaba.
- rkUIs class created
- new panel class
- added drawing code for panel
- fixed bug where some sides of the UI's border were failing to drawing (line rendering quark)
v0.0014a (alpha) 11.30.2023 (~2 hours)
- successfully retrieving basic data from save folder, load text into lua from files
- added 'props' property to Entity class
- added a props table to control what gets serialized and what doesn't
- added a save() base method for instances (has to be overridden to be useful beyond the basics)
- moved the lume.serialize() call into the :save() method on the base entity class itself
- serialized and successfully saved an entities property table.
- fixed deserializion bugs involving wrong indexes (savedata[1] not savedata[2])
- moved deserialization from temp code, into line loading loop itself (assuming each item is on one line)
- deser'd test data, and init()'d new player Entity using the freshly-loaded data, and displayed the entity sprite
All in all not a bad session. Understanding filing handling and how to interact with the directory system was the biggest hurdle I was worried about for building my tools.
Next steps will be defining some basic UI elements (with overridable draw code), and then loading and initializing the UI from lua or json.
New projects can be set as subfolders folders in appdata, using 'Setidentity("appname/projectname") to keep things clean.
I'm not even dreading writing basic syntax highlighting!
Idea is to dogfood the whole process. UI is in-engine rendered just like you might see with godot, unity, or gamemaker, that way I have maximum flexibility to style it the way I want. I'm familiar enough with constructing from polygons, on top of stenciling, on top of nine-slicing, on top of existing tweening and special effects, that I can achieve exactly what I want.
Idea is to build a really well managed asset pipeline. Stencyl, as 'crappy' as it appeared, and 'for education' was a master class in how to do things the correct way, it was just horribly bloated while doing it.
Logical tilesets that you import, can rearrange through drag-n-drop, assign custom tile shapes to, physics materials, collisions groups, name, add tag data to, all in one editor? Yes please.
Every other 2D editor is basic-bitch, has you importing images, and at most generates different scales and does the slicing for you.
Code editor? Everything behavior was in a component, with custom fields. All your code goes into a list of events, which you can toggle on and off with a proper toggle button, so you can explicitly experiment, instead of commenting shit out (yes git is better, but we're talking solo amateurs here, they're not gonna be using git out the gate unless they already know what they're doing).
Components all have an image assignable to identify them, along with a description field, and they're arranged in a 2d grid for easy browsing, copying, modifying.
The physics shape editor, the animation editor, the map editor, all of it was so bare bones and yet had things others didn't.
I want that, except without the historic ties to flash, without the overhead of java, and with sexier fucking in-engine rendering of the UI and support for modding and in-engine custom tools.
Not really doing it for anyone except myself, and doubt I'll get very far, but since I dropped looking for easy solutions, I've just been powering through all the areas I don't understand and doing the work.
I rediscovered my love of programming after 3-4 years of learning to hate it, and things are looking up.2 -
I'm kinda tired of my office corner. Sure it is a decent place to be. With flexibility being a 10/10 and it is basically stress free. But it starts to grind on me. Its not really challenging and I feel stuck where I am. Nothing interesting happening. I get constantly teased with going outdoors. I am just a few steps short of another dev becoming a farmer. Mix this with a "the world will end anyway in the future so might aswell go out and see it" mentality.
-
I find dynamically typed language a lot easier to read and understand than statically typed language.
What's up with all these interfaces, types and abstractions, its just too much!
I do want structure when writing code, but also the flexibility to test things without the f*** interface/type errors!!!16 -
I have a programming tutorials website I built from scratch in the PHP framework Laravel 5.4. Recently my friends have been pushing me to use WordPress instead.
I haven't worked with WordPress yet but I just hate it. I always think that it will not give me the flexibility I might need when adding new features.
This has put me in great doubt and anxiety about what I'm doing.
Is wordpress a better choice? I'm I just being lazy about the WordPress stuff?
I'll appreciate any advice on this.6 -
What hours do you work?
I work 9-6, most people at my office work 7-4 or 8-5. I have the flexibility to work when I want, but never get to bed early enough to start earlier than 9. I feel behind when I get in the office because most of my coworkers and clients have already been at for an hour or 2.
When do you work and why? Can you tell if it’s impacted your career at all?16 -
me :: Musician a, Developer b => a -> b
This week I reached the end of a long journey and the start of the next one!
When I signed up here I shared a rant about where I was at the time:
https://devrant.com/rants/1279742/...
This week I accepted a decent salaried role as the leading Data Scientist in a well funded nonprofit organisation based close to my home! I’ll be the only technical professional in software development or analytics in the organisation and it’s a new role, so I imagine there’ll be a reasonable degree of flexibility in figuring things out and implementing them.
Have spent the last week (and will continue until my start date) building up a realistic collection of best practices while brushing up on tools they use (as well as tools and methodologies that I plan to bring with me).
After over a decade working as a self employed freelance, I’m looking forward to them change and to building out on different areas of my skillset!1 -
For context: I’m a relatively new employee (~six months) on the outreach team at a large nonprofit. Our team rarely gets together, working remotely and out at events most of the time. My supervisor’s managing style is odd to me, and I’m not really used to it yet. She is very hands-off and flaky, but extremely numbers-oriented and goal-driven. She doesn’t respond well to emails and often ends up communicating solely via text.
Last week, a friend of mine passed away unexpectedly. My manager was out of town and not working that day, so I emailed instead of texting her to let her know that I would be travelling for the funeral and wouldn’t be working on Monday or Tuesday. She actually emailed back apologizing for my loss and telling me to just let her know when I’m back in town. I was impressed that she got back to me and thankful for her flexibility.
On Sunday night at 11:30 p.m., I received a text from her about a Monday morning meeting that I chose to ignore because I was annoyed that she would text me so late and expect a response, even if it would just be to remind her that I’m out. At around midnight she sent another that said, “That’s right, you’re out. I forgot.”
On Tuesday morning, while pulling into the church parking lot for the funeral, I received a text from her to our whole team complaining about outreach and program recruitment numbers with several follow-up texts asking for immediate explanations for not meeting this month’s goals. I immediately silenced notifications from the conversation and haven’t addressed them.
Am I wrong in thinking that this was extremely inappropriate and insensitive? I feel like that conversation would have been much better suited for an in-person meeting, or even an email, especially since she knew I was out on personal time. At the very least, she should have left me off of the text chain, right?
Should I talk to her about this when I see her next? Go to HR? Bring it up the next time I take a personal day (“I’d like it if you don’t text me while I’m out this week”)? I’m really terrible at confrontation and am nervous about looking like I’m overreacting, but this really upset me. Thankful for any advice you can give!3 -
Oh my.. I think I'm enjoying molesting kubernetes :)
A while ago I got pissed at k8s because with 1.24 they brought backward-incompatible changes, ruling my cluster broken. Then I thought to myself: "why not create a Docker image that would run kubernetes inside? Separate images for control plane, agent and client"
Took me a while, but I think tonight I've had a breakthrough (I love how linux works...)!! The control-plane is spinning up!! Running on containerd
Still needs some work and polishing, but hey! Ephemeral k8s installation with a single docker-run command sure sounds tempting!
P.S. Yes, I know there is `kind` and 'kinder', but I'm reluctant to install a separate tool that installs a set of tools for me. Kind of... too shady. Too many moving parts. Too deeply hidden parts I may have to fix. Having a dumb-simple Dockerfile gives me the openness, flexibility and simplicity I want. + I can always use it as a base image to add my customizations later on! Reinstalling a cluster would be a breeeeeeze6 -
Programming gave me a sense of accomplishment. The feeling of being able to dream something up, and then make that come to life, and always improving yourself as you go. What else gives you the same flexibility to change and add on to projects? All of this combined for my love of math and mechanics, and I found that programming was my true love!
-
Every once in a while the flexibility of dynamic types comes back and bites you in the ars:
So I created method that returns the date significance (day, month, year) or null when no date is set.
I chose a class constant DAY with the value 0.
This is not a problem in if statements as I always use === but in this case a switch made more sense. And as you can guess no date set (NULL) was handled in the self::DAY (0) case... 😐😑😶 Silently resulting in wrong results when no date is given! #£#@$& (and other comic swearing symbols)
Even though php7 finally has decent type hinting resulting in much clearer defined API's we can still go very wrong.
More love to Go for less verbose static typing! To bad we can rarely use it at the office 😥2 -
I've ranted about this before, but here we go again:
Go Plugins.
I was racking my brains trying to figure out how one could possibly implement plugins easily in Go.
I had a look at using RPC, which requires far to much boilerplate to be realistic. I looked at using Lua, but there doesn't seem to be a straight forward way of using it. I was even about to go with using WASM (yes, WASM). But then I came across Yaegi ("Yet another elegant Go interpreter", you heard right: "interpreter"), Yaegi is also very easy to use.
There are a few issues (including some I haven't solved yet), including flexibility (multiple types of plugins), module support, etc. Fortunately, Traefik just released their plugin system which is based on Yaegi (same company), and I got to learn a few tricks from them.
Here's how module loading works: The developer vendors their dependencies and pushes them to a repo. The user downloads the repo as a zip and saves it to the plugins folder. I hash the zip, unzip it to a cache, and set the the GOPATH for the interpreter to be that extracted folder. I then load the module (which is defined by a config file in the folder), and save it for later. This is the relatively easy part.
The hard part is allowing for different types of plugins. It looks easy, but Go has a strict typing system, makes things complicated. I'm in the process of solving this problem, and so far it should go like this: Check that the plugin fits an arbitrary interface, and if it does, we're good the go. I will just have to apply the returned plugin to that interface. I don't like this method for a few reasons, but hopefully with generics it will become a bit more clean.1 -
There is some kind of business big change in the company where I'm currently working.
I'm really happy with the current situation, in terms of salary, flexibility, teammates... all. I don't really want this to change.
In 15 min I have a metting with the bosses to talk about those changes. I feel pretty nervous about what they will say and what can I say to keep my interests.
Wish me luck.6 -
I prefer it doing 2 tasks parallely during the initial phase of requirement gathering and design phase.(makes more sense if you are working extremely new system and framework)
1. Keep collecting requirements from clients and understand them.
2. Collect different designing aspects for the project and parallely, build a POC for 2 purpose: to get hands into the new Framework and also as a demo to clients. Working on POC helps in 3 ways: Improving understanding of requirement, improving framework knowledge, and playing around with code whenever bored of designing and reading tons of existing designs..
3. Once primary requirements are clear and fixed, analyse all different designs, if possible I setup meetings with senior devs, principal engineers (they help a lot when it comes to reviews on scalability and reliability of a design)
4. The above design is mostly architectural level. Once design is fixed, then I start taking each component and prepare a detailed implementation design. (Notice that whenever I am bored of designing, I spend sometime in building POC)
5. In detail design, I focus on modularity and flexibility. Anything defined should have getters and setters for example. This will help you reuse your code. Keep the interface between components in your design as generic as possible, so that in case your MySQL is change to Postgre or NoSQL, your design should be able to adapt new features..
6. Instead of building entire project, define feature targets and deliver small features.. this will help you to be in line with the requirements with minimum deviation. -
Getting real tired of your shit, JavaScript. I sincerely love and hate the language, its so flexible at the same time that flexibility will give you nightmares, I swear to god I'll never recommend Node.js for any big projects, right now the same flexibility is killing our project.
Oh lord, have mercy.11 -
Feels bad to admit it, but I constantly work over hours and on holidays in the past year. The company is in a merger and complete overhaul of two internal systems landed on me, in addition to some other "role hats" I'm wearing.
Deadlines are unrealistic to fit in regular hours, but at least my immediate manager recognizes that and is supportive with extra work flexibility and bonuses every couple of months.
I keep calming myself down that this is temporary, just gotta hit those initial deadlines. Sounds a bit foolish, but I'm hopeful.
They are a good company to work for, and I've been with them from mid 2015. -
"The control which designers know in the print medium, and often desire in the web medium, is simply a function of the limitation of the printed page. We should embrace the fact that the web doesn’t have the same constraints, and design for this flexibility. But first, we must 'accept the ebb and flow of things.'" - John Allsopp1
-
I right now work as a Remote Front end dev and I must admit is pretty sweet and flexible, however, I think my ideal job would be in a foreign country (Japan, Malaysia, Singapore, Hong Kong) with the same remote flexibility but with a Visa sponsorship, Working on modern web projects, progressive web apps etc. learning from others and improving my code. please let me know of any opportunity haha.1
-
Looking at vacancies and the JS build tools asked (Babel, Gulp) and then visiting their websites I notice that I don't understand what they are going on about.
"Leverage gulp and the flexibility of JavaScript to automate slow, repetitive workflows and compose them into efficient build pipelines."
What the actual corpo fuck?
The "get started" page expects you already know npm, typescript, and when you look at their pages, well... Where does the circlejerk end and the actual Javascript start?
I've been out of the corporate loop for a few years, seems it's all about build tools these days. I need to get out of this industry pronto.3 -
The hype of Artificial Intelligence and Neutral Net gets me sick by the day.
We all know that the potential power of AI’s give stock prices a bump and bolster investor confidence. But too many companies are reluctant to address its very real limits. It has evidently become a taboo to discuss AI’s shortcomings and the limitations of machine learning, neural nets, and deep learning. However, if we want to strategically deploy these technologies in enterprises, we really need to talk about its weaknesses.
AI lacks common sense. AI may be able to recognize that within a photo, there’s a man on a horse. But it probably won’t appreciate that the figures are actually a bronze sculpture of a man on a horse, not an actual man on an actual horse.
Let's consider the lesson offered by Margaret Mitchell, a research scientist at Google. Mitchell helps develop computers that can communicate about what they see and understand. As she feeds images and data to AIs, she asks them questions about what they “see.” In one case, Mitchell fed an AI lots of input about fun things and activities. When Mitchell showed the AI an image of a koala bear, it said, “Cute creature!” But when she showed the AI a picture of a house violently burning down, the AI exclaimed, “That’s awesome!”
The AI selected this response due to the orange and red colors it scanned in the photo; these fiery tones were frequently associated with positive responses in the AI’s input data set. It’s stories like these that demonstrate AI’s inevitable gaps, blind spots, and complete lack of common sense.
AI is data-hungry and brittle. Neural nets require far too much data to match human intellects. In most cases, they require thousands or millions of examples to learn from. Worse still, each time you need to recognize a new type of item, you have to start from scratch.
Algorithmic problem-solving is also severely hampered by the quality of data it’s fed. If an AI hasn’t been explicitly told how to answer a question, it can’t reason it out. It cannot respond to an unexpected change if it hasn’t been programmed to anticipate it.
Today’s business world is filled with disruptions and events—from physical to economic to political—and these disruptions require interpretation and flexibility. Algorithms alone cannot handle that.
"AI lacks intuition". Humans use intuition to navigate the physical world. When you pivot and swing to hit a tennis ball or step off a sidewalk to cross the street, you do so without a thought—things that would require a robot so much processing power that it’s almost inconceivable that we would engineer them.
Algorithms get trapped in local optima. When assigned a task, a computer program may find solutions that are close by in the search process—known as the local optimum—but fail to find the best of all possible solutions. Finding the best global solution would require understanding context and changing context, or thinking creatively about the problem and potential solutions. Humans can do that. They can connect seemingly disparate concepts and come up with out-of-the-box thinking that solves problems in novel ways. AI cannot.
"AI can’t explain itself". AI may come up with the right answers, but even researchers who train AI systems often do not understand how an algorithm reached a specific conclusion. This is very problematic when AI is used in the context of medical diagnoses, for example, or in any environment where decisions have non-trivial consequences. What the algorithm has “learned” remains a mystery to everyone. Even if the AI is right, people will not trust its analytical output.
Artificial Intelligence offers tremendous opportunities and capabilities but it can’t see the world as we humans do. All we need do is work on its weaknesses and have them sorted out rather than have it overly hyped with make-believes and ignore its limitations in plain sight.
Ref: https://thriveglobal.com/stories/...6 -
I just started a new job last week. Old-school sysadmin role for a pretty old-school company, but the pay is nice and the kids've gotta eat.
They gave me a windows laptop. I haven't used windows for work or as a daily driver since 2016, and now, a week into trying to make this machine work for me, I have the following observations to report.
WSL is nice. It's nice to have it installed(though actually installing it was an adventure unto itself), and to set alacritty to open my default user prompt straight into that is very nice. As terminal emulators are by far my most used piece of software, that's nice to have.
Command-line software management through powershell, winget, and chocolatey are also very nice.
I like the accessibility offered by autohotkey, though there is something of a learning curve on it. Once I get better with it, I suspect that what follows will be largely mitigated.
The Bad:
In general, Windows is janky. It feels like it's all kinda taped together without any particular cohesion in mind. As a desktop, it feels decidedly amateur, compared to the feature-mountain polish of MacOS, and especially compared to the flexibility and infinite possibilities of Linux.
Lots of screen real estate is wasted, with window decorations, and fonts that look terrible at smaller sizes, because the antialiasing of fonts is just terrible. Almost all the features I depend on in other desktops: ad-hoc searches and launches(alfred, rofi) are-- again --janky. They work, but they typically require more typing than alfred or rofi. I admit I haven't spent weeks on this problem yet, but I haven't found a workable solution yet with wox, hain, and keypirinha. Quick searches like what you get with alfred, alfred workflows, and the swiss army knife that is rofi, just aren't possible or reliable with the tools I've used so far, and most require some kind of indexing agent to fully function.
It beggars imagination that a desktop in which users are subjected to "default apps" that is purported to be acceptable for enterprise, professional use, does not have a default entry for text editor. I installed nvim-qt, and I want to use it to edit anything and everything I ever edit with text, but all too often, apps have hard-coded instructions to open text files with notepad.
I want to open certain URLs with firefox, certain ones with firefox developer edition, and others with vivaldi, and yet there is not an app available that I have seen yet in my searches that allows me to set this kind of configuration. I found one that's supposed to, but it just ignores everything I put into its config, and just opens MS Edge for everything. Jank.
Simple things take too long. Like the delay between when I laboriously hit ctrl-alt-del to bring up the login and when the actual text field appears, and the delay between that and when I want to start using the computer.
Changing some settings requires a reboot. Updating some software requires a reboot. Updating permissions on something sometimes requires a reboot. And those are all on top of the frequent requests to reboot for updates.
I would have thought Windows would have overcome most of the issues that create these problems, but it's just, as I said, amateur.1 -
Once again, I'm late to the party, wondering how in the world I never heard of ranger before yesterday. For me, it's an absolute game changer. It beats mc, the previous only console-based file manager I've seen, handily in terms of features, flexibility, aesthetics, and ease of use.
This will easily replace finder at work, and pcmanfm at home. It's in every major repo, including debian, redhat, arch, gentoo, and suse variants, and is available through homebrew too.2 -
Jira is fantastic and offers flexibility and solutions to all situations! All basic tools are there! You just need to pay for each little thing until you either run out of money or the Jira servers crashesh under its own slowness.
For example, if you'd like to quickly create Tasks, you just need to buy plugins that autofill fields. No way that it could be done otherwise. You need to script your everyday Jira actions? Just be the admin for the whole enterprise and you get to write your own scripts.7 -
I'm looking for a good JIRA app for Android. I've been using JIRA in Motion, but it lacks flexibility.1
-
I kind of have my ideal dev job right now.
It's interesting and diversified work, I have the possibility to experiment and to learn and I have some great colleagues. Well, most of the time. :D
What I miss right now is a higher flexibility of work hours and workplace e.g. home office due to changes in my life. Also, I don't earn that much, but since it's not a full-time job that's OK, also I still can make a living. -
Anyone here currently employed as a perl developer? I wanted to know how your experience with the language and the environment has been? I have been going on and off in the perl world for a while know. Currently some interesting perl jobs have been comming up. I have always liked the language but I know that there is a major difference between liking a language for basic scripts and using it in a work environment.
Currently, I have experimented with a few web projects using Perl and I am really digging what I see, the code can be as hacky as you want it to be or as elegant and readable as you make it, such freedom and flexibility is great. -
advantages of bionic systems:
- energy efficiency
- flexibility
- low friction
- compact size
- water resistance
advantages of mechanical systems:
- precision
- rotation is available
- scalability
- can change parts6 -
Wordpress gets a lot of hate around here and I totally know why(some of it's from me), but with limited staff to manage 40+ sites I do appreciate its flexibility.5
-
Currently having very funny project lead, who gives on the spot estimates for 9 years old very pathetic quality code having Android app in security domain. Memory leaks, bad practices, typos, CVEs etc. you name it we have it in our source of the app.
Since 5-6 sprints of our project, almost 50% of user stories were incomplete due to under estimations.
Basically everyone in management were almost sleeping since last 7-8 years about code quality & now suddenly when new Dev & QA team is here they wanted us to fix everything ASAP.
Most humourous thing is product owner is aware about importance of unit test cases, but don't want to allocate user stories for that at the time of sprint planning as code is almost freezed according to him for current release.
Actually, since last release he had done the same thing for each sprint, around 18 months were passed still he hadn't spared single day for unit testing.
Recently app crash issue was found in version upgrade scenario as QAs were much tired by testing hundreds of basic trivial test cases manually & server side testing too, so they can't do actual needful testing & which is tougher to automate for Dev.
Recently when team's old Macbook Pros got expired higher management has allocated Intel Mac minis by saying that few people of organization are misusing Macbooks. So for just few people everyone has to suffer now as there is no flexibility in frequent changing between WFH & WFO. 1 out of those Mac minis faced overheating & in repair since 6 months.
Out of 4 Devs & 3 QAs, all 3 QAs & 2 Devs had left gradually.
I think it's time to say goodbye 😔3 -
VP: We need to build a new platform for flexibility!
Architect: Let's do micro services!
One year later...
Now we have "micro services" in Elixir, Go, Node.js and PHP.
Not to mention our prehistorical products in Erlang and PHP...1 -
Time flexibility, free food, remote job, a great place to learn new stuff and a great environment to work with no shitty developers.
-
Let's do a story mapping session! Ok cool. PO asks the team: so guys what do you think? *silence*... *more silence*.... PO: come on guys, please respond. *silence*.... Then someone finally responds.
I'm starting to hate this big time. It's almost always like that, no matter the type of session (story mapping, refinement) And there's someone in the team that thinks he always knows best, so if ever someone speaks up, it will always be challenged and lead to useless discussions. He always wants the perfect solution. A good solution is good enough, it doesn't have to be perfect. PO is happy with a good solution (good = maintainable, scoring at least x on our code quality tooling), so why the fuck would you want to go for the 'perfect' solution, which may score just slightly higher in regard to quality, cost much more to develop and people have a hard time maintaining it due to the high level of abstraction? He's always refactoring stuff because it's not future proof. Well, why completely reimplement parts that have been working properly for 2 years and have a very very small chance of needing a change, which then still only needs to be done in just 1 place?
And you know what? All these fancy structures, patterns etc are in there but will their flexibility ever really be used? In my 20 years experience haven't seen such flexibility being really used. Some exceptions of course.
Once it's built, it will keep running, yes, changes will need to be made, but in most cases they never touch all these expensive fancy structured components. Just because most changes are in content or small changes in functionality.1 -
!rant
What are your thoughts on Xamerin ? (Spelling is probably off ). In any aspect: security, workflow, Flexibility, ect.3 -
Is having a CV history of job hopping within a year the standard? Are you still getting great job offers?
I'm aiming to spend another 2 years in my company just because the flexibility and work pacing is good, but need to know if job tenure is a big deal or not and start chasing more competitive salaries.5 -
Best part about being a dev: Encountering problems and being able to fix what I find.
Having the flexibility to reason through solutions and occasionally write my own. -
We ended up finding ourselves with a bunch of tables that have mostly the same columns, but differ by a few. Every time we consume a REST API, we store the `access_token`s and expiration dates and the other OAuth data. However, each provider has slightly different requirements. For example, we store email addresses for email api's, other providers require us to store some additional information, etc. etc.. I'm tempted by the flexibility and lack of schema brought by document databases, but not enough to use one since they're generally slower and we already have everything in SQL. So I got the idea of using JSON columns to alleviate this issue: have a single table for all REST integrations (be it outlook or facebook), and then store the unique integration data inside of this JSON column for "additional data". This data is mostly just read, not filtered by (but ocasionally so). Has anyone had experience with this? How's the performance of JSON fields? Is this a good practice or will it get harder with more integrations?
-
If you had to evacuate your office due to a fire without your laptop and the office was destroyed could you continue to work? Do you have offsite recovery laptops?
Developers usually have flexibility where they can work from but sometimes do not have backup machines available and configured.
As a side question - would your other critical processes - accounting, HR, sales be able to continue to keep your business going in a disaster - or would they be like deer in headlights?6 -
So I was building opencv some time back.
Nice enough package, like most python linked packages I'm finding though I know you can use it via c and its meant to be but why would you want to ? .. it contains a whole bunch of half finished crap that is actually useful in part including the capacity to tear apart video files and manipulate frames one at a time and then rewrite them back to a file. about the only lib that's easy to use that I saw that does that. hell I can even compose my own video frames. also the only other lib I saw that does that thus far.
so...
I post a bug, because of FUCKING CMAKE NOT WORKING. not conforming with the well thought out build environment that most GNU style c packages use.
you know like when you need an upstream source package to build the code, or a downgraded package to build the code and don't want to fuck up your host environment so you have to specify a bunch of lib paths and the like so that ld and gcc work correctly etc etc etc from your custom build location and so you can later use these same values to find the compiled lib and build software against it.
fucker closes my ticket saying i hijacked the c environment................
no.
its because cmake sucks.
they're using and i don't know why a module specifically written to find libtiff.
specifically written but doesn't find the only source on my system that provides tiff which my env variables point directly to !!!!
lazy fucking cocksuckers !
I want to code a solution this issue.
something that translates ac files and am files and cmakelists into something intelligent and easy to follow that doesn't sacrifice the flexibility of make and gnu shit and unfucks cmake based projects !7 -
I love the flexibility and power you get with Wordpress, WooCommerce and its entire plugin ecosystem...
BUT FUCK ME! PHP IS SHIT!!
It's like writing code by hand with pen and paper, putting it through an OCR and then compiling it. Sure, it might work if you're lucky and maybe even look cool, but good luck trying to develop a sulution with any sort of speed!3 -
Building an AI enabled image transformation product similar to Cloudinary with better functionalities, pricing and flexibility. Targeting B2B clientele.
What is your opinion on this?3 -
FML so I have recently learned I am mandated (nodoby asked me if I wanted to do it, management just assumed I would) to help and train an offshore SQA team with 10 hours of jet lag to automate their tests on physical hardware because everything they do is manual and their environment is all mocked including hardware... there is barely any doc on how they test their shit or on what they even do. I need them to show me their shit work on goddamn zoom. And then once I manage to do this by some fucking miracle, I need to show them how to take over my already automated project.
Dudes cannot even code, how the fuck am I supposed to do this? Worse is I was told I can't impose our tested infrastructure and libs on them because "we have to give them flexibility" or some bullshit.
Fucking pay cheaply 5 people offshore to get fuck all done and then put the weight on my shoulders when you are surprised it does not work? You bunch of management fucks, eh?
Lucky I am getting some shiny offers elsewhere.3 -
The weather.gov API is a great teaching API. https://weather.gov/documentation/...
It’s simple but has lots of flexibility. -
I'm currently evaluating the best way to have both a linux distro for work and study and windows for gaming on my PC.
I need as little virtualization as possible on both systems (need to do some high performance computing and access hardware counters for uni and that sweet Ultra Raytracing 144 fps for games) and as mich flexibility in quickly switching between both systems (so dual boot isnt ideal too)
I tried WSL2 but had some issues and am currently trying out a Lubuntu VM on my windows host, but maybe someone knows the secret super cool project that magically makes this unrealistic wish work.7 -
That I don't know it.
[The ambiguity is on purpose - actually that would hold for any computer language: that it will never have the flexibility, precision, metaphorical power, somnambulistic confidence in dealing with ambiguous constructs or meanings that natural languages have.] -
My coding style is mostly influenced by good old personal preference, but also because of a certain internship where there was a lot of gain to be had by making everything as reusable and testable as possible.
I guess you could say my motto is usability, readability and flexibility:
I like tidy, reusable code with an emphasis on keeping code readable. I've always liked modular things I guess...
And I despise two things: curly brackets on the next line and spaces for indentation... But way worse is having no brackets at all (looking at you Python): it's clearer to have lower-level code inside some sort of "container" markers i.e. brackets (also gives more IDE functionality like color-coding hierarchically).
Indentation should always be tabs so anyone can have their own width of indentation set through their IDE, making it way more accessible to fellow colleagues!
And I also like having parameterized code over hard-coded functions: way more flexible. -
In 2020, flutter team announced the declarative way of navigation, but just after its release a lot of bad reviews came out from developers from all over the world saying it is too verbose and complex process to implement navigation using navigator 2.
But, if we just try to understand the process of using navigator 2, then the power that flutter provides with navigator 2 can help us achieve great navigation flexibility. After understanding and implementing the navigator 2.0 on few projects I found it to be very useful.
I wrote an article and tried to explain the concept that one needs to know before using the Navigator 2.0. I hope you would find this article helpful.
Link to article: https://vocal.media/01/...
Let me know your thoughts on flutter's navigator 2.0 on comments below.
Thanks
#flutterdev #navigator2 -
Greater flexibility is offered to customers in customizing their tours, everything else is been accomplished by the tour planners. Getting the accommodation of the customer budget, booking for activities of interest, transport arrangements and restaurants of choice are all included in the cost of tour packages. Tour packages in Kerala are of great demand for the native people as well as the non-natives. Many of the foreigners often search for the best tour packages in Kerala and get one booked before they start the journey. Tour packages offer complete security and guidance for the travelers. With enormous beautiful destinations, Kerala stands at the top of tourist destinations in the world.. So you people will never have to compromise on your favorites. The ever growing demand for tour packages actually benefits people, as the competition gets high; companies provide attracting offers for the customers.
http://holidaystation.co.in/