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 - "data driven design"
-
Not one feature.
All analytics systems in general.
Whether it's implementing some tracking script, or building a custom backend for it.
So called "growth hackers" will hate me for this, but I find the results from analytics tools absolutely useless.
I don't subscribe to this whole "data driven" way of doing things, because when you dig down, the data is almost always wrong.
We removed a table view in favor of a tile overview because the majority seemed to use it. Small detail: The tiles were default (bias!), and the table didn't render well on mobile, but when speaking to users they told us they actually liked the table better — we just had to fix it.
Nokia almost went under because of this. Their analytics tools showed them that people loved solid dependable feature phones and hated the slow as fuck smartphones with bad touchscreens — the reality was that people hated details about smartphones, but loved the concept.
Analytics are biased.
They tell dangerous lies.
Did you really have zero Android/Firefox users, or do those users use blocking extensions?
Did people really like page B, or was A's design better except for the incessant crashing?
If a feature increased signups, did you also look at churn? Did you just create a bait marketing campaign with a sudden peak which scares away loyal customers?
The opinions and feelings of users are not objective and easily classifiable, they're fuzzy and detailed with lots of asterisks.
Invite 10 random people to use your product in exchange for a gift coupon, and film them interacting & commenting on usability.
I promise you, those ten people will provide better data than your JS snippet can drag out of a million users.
This talk is pretty great, go watch it:
https://go.ted.com/CyNo6 -
Want to make someone's life a misery? Here's how.
Don't base your tech stack on any prior knowledge or what's relevant to the problem.
Instead design it around all the latest trends and badges you want to put on your resume because they're frequent key words on job postings.
Once your data goes in, you'll never get it out again. At best you'll be teased with little crumbs of data but never the whole.
I know, here's a genius idea, instead of putting data into a normal data base then using a cache, lets put it all into the cache and by the way it's a volatile cache.
Here's an idea. For something as simple as a single log lets make it use a queue that goes into a queue that goes into another queue that goes into another queue all of which are black boxes. No rhyme of reason, queues are all the rage.
Have you tried: Lets use a new fangled tangle, trust me it's safe, INSERT BIG NAME HERE uses it.
Finally it all gets flushed down into this subterranean cunt of a sewerage system and good luck getting it all out again. It's like hell except it's all shitty instead of all fiery.
All I want is to export one table, a simple log table with a few GB to CSV or heck whatever generic format it supports, that's it.
So I run the export table to file command and off it goes only less than a minute later for timeout commands to start piling up until it aborts. WTF. So then I set the most obvious timeout setting in the client, no change, then another timeout setting on the client, no change, then i try to put it in the client configuration file, no change, then I set the timeout on the export query, no change, then finally I bump the timeouts in the server config, no change, then I find someone has downloaded it from both tucows and apt, but they're using the tucows version so its real config is in /dev/database.xml (don't even ask). I increase that from seconds to a minute, it's still timing out after a minute.
In the end I have to make my own and this involves working out how to parse non-standard binary formatted data structures. It's the umpteenth time I have had to do this.
These aren't some no name solutions and it really terrifies me. All this is doing is taking some access logs, store them in one place then index by timestamp. These things are all meant to be blazing fast but grep is often faster. How the hell is such a trivial thing turned into a series of one nightmare after another? Things that should take a few minutes take days of screwing around. I don't have access logs any more because I can't access them anymore.
The terror of this isn't that it's so awful, it's that all the little kiddies doing all this jazz for the first time and using all these shit wipe buzzword driven approaches have no fucking clue it's not meant to be this difficult. I'm replacing entire tens of thousands to million line enterprise systems with a few hundred lines of code that's faster, more reliable and better in virtually every measurable way time and time again.
This is constant. It's not one offender, it's not one project, it's not one company, it's not one developer, it's the industry standard. It's all over open source software and all over dev shops. Everything is exponentially becoming more bloated and difficult than it needs to be. I'm seeing people pull up a hundred cloud instances for things that'll be happy at home with a few minutes to a week's optimisation efforts. Queries that are N*N and only take a few minutes to turn to LOG(N) but instead people renting out a fucking off huge ass SQL cluster instead that not only costs gobs of money but takes a ton of time maintaining and configuring which isn't going to be done right either.
I think most people are bullshitting when they say they have impostor syndrome but when the trend in technology is to make every fucking little trivial thing a thousand times more complex than it has to be I can see how they'd feel that way. There's so bloody much you need to do that you don't need to do these days that you either can't get anything done right or the smallest thing takes an age.
I have no idea why some people put up with some of these appliances. If you bought a dish washer that made washing dishes even harder than it was before you'd return it to the store.
Every time I see the terms enterprise, fast, big data, scalable, cloud or anything of the like I bang my head on the table. One of these days I'm going to lose my fucking tits.10 -
There are days I like to pull my hair out and create a dynamic 4D map that holds a list of records. 🤯
Yes there's a valid reason to build this map, generally I'm against this kind of depth 2 or 3 is usually where I draw the line, but I need something searchable against multiple indexes that doesn't entail querying the database over and over again as it will be used against large dynamic datasets, and the only thing I could come up with was a tree to filter down on as required.6 -
I wrote my first proper promise today
I'm building a State-driven, ajax fed Order/Invoice creation UI which Sales Reps use to place purchases for customers over the phone. The backend is a mutated PHP OSCommerce catalog which I've been making strides in refactoring towards OOP/eliminating spahgetti code and the need for a massive bootstrapper file which includes a ton of nonsense (I started by isolating the session and several crucial classes dealing with currency, language and the cart)
I'm using raw JS and jquery with copious reorganization.
I like state driven design, so I write all my data objects as classes using a base class with a simple attribute setter, and then extend the class and define it's attributes as an array which is passed to the parent setter in the construct.
I have also populateFromJson method in the parent class which allows me to match the attribute names to database fields in the backend which returns via ajax.
I achieve the state tracking by placing these objects into an array which underscore.js Observe watches, and that triggers methods to update the DOM or other objects.
Sure, I could do this in react but
1) It's in an admin area where the sales reps using it have to use edge/chrome/Firefox
2) I'm still climbing the react learning curve, so I can rapid prototype in jquery faster instead of getting hung up on something I don't understand
3) said admin area already uses jquery anyway
4) I like a challenge
Implementing promises is quickly turning messy jquery ajax calls into neat organized promise based operations that fit into my state tracking paradigm, so all jquery is responsible for is user interaction events.
The big flaw I want to address is that I'm still making html elements as JS strings to generate inputs/fields into the pseudo-forms.
Can anyone point me in the direction of a library or practice that allows me to generate Dom elements in a template-style manner.4 -
So the project I have been working on for the past 5 months was finally released yesterday with only very minor problems, this stemmed from both programming side, and users entering data incorrectly.
It has been a rather hectic 5 months. I've had to deal with crap like:
- clients not knowing their own products
- a project manager that didn't document anything (or at least everything into a Google Slides document)
- me writing both requirements AND specifications (I'm a dev, not a PM)
- developers not following said specifications (then having to rewrite all their work)
But the worst thing I think would be the lack of vision from everyone. Everyone sees it as a "project" that should be get it over and done with rather a product that has great potential.
So with the project winding down, and only very few things left to fix/implement. Over these 5 months I learned a lot about domain driven design, Laravel's core, AWS, and just how terrible people are at their jobs. I imagine if I worked with people who gave a damn, or who actually had skills, I probably wouldn't have had such a difficult project.
Right now I'm less stressed but now feel rather exhausted from it all. What kind of things do you to help with the exhaustion and/or slow down of pace?1 -
In the ever-evolving landscape of business operations, efficiency stands as a cornerstone for success. However, traditional reporting methods often entail a cumbersome and time-consuming process that drains resources and stifles productivity. Enter company dashboards https://cobit-solutions.com/en/ – the dynamic solution revolutionizing the way organizations monitor and analyze data, effectively replacing tedious reporting practices with streamlined, real-time insights.
Gone are the days of painstakingly compiling data from disparate sources, only to present it in static, outdated reports. Company dashboards offer a comprehensive and interactive approach to data visualization, empowering stakeholders to access critical information at their fingertips. Whether it's sales figures, marketing metrics, or financial performance, these dashboards provide a centralized hub where data is aggregated, analyzed, and presented in a user-friendly format.
One of the key advantages of company dashboards is their ability to automate reporting processes, significantly reducing the time and effort required for manual data collection and analysis. With customizable features and intuitive design, users can effortlessly generate reports tailored to their specific needs, eliminating the need for repetitive tasks and allowing teams to focus on strategic initiatives.
Moreover, company dashboards promote transparency and collaboration within organizations by facilitating data sharing and cross-departmental communication. By granting stakeholders access to real-time insights, decision-making becomes more informed and agile, enabling swift responses to changing market dynamics and emerging opportunities.
Another noteworthy benefit of company dashboards is their scalability and adaptability to evolving business needs. Whether a startup or a multinational corporation, organizations can customize dashboards to align with their unique goals and objectives, ensuring relevance and effectiveness across different departments and functions.
Furthermore, the adoption of company dashboards fosters a data-driven culture within organizations, where decisions are driven by empirical evidence rather than intuition. By democratizing access to data and empowering employees at all levels to leverage insights, companies can foster innovation, drive performance, and gain a competitive edge in today's fast-paced business environment.
In conclusion, company dashboards represent a paradigm shift in how organizations approach reporting and data analysis. By replacing tedious and time-consuming processes with dynamic, real-time insights, these tools enable businesses to operate more efficiently, make better-informed decisions, and ultimately achieve their strategic objectives. As technology continues to advance and data becomes increasingly abundant, the role of company dashboards will only become more integral in driving success in the digital age.3