AboutSemicompetent glue huffer/coder, full time ranter. Currently listening to: Huey Lewis & The News Welcome to the counter. Take a number. Actively working to make the world a worse place "because we care!" (c).
SkillsLua, UI Design (2 years), Nihilism and levels of shitposting that aren't even supposed to be possible.
Joined devRant on 5/5/2019
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Go to compare two technologies. Ask google.
What do I get?
Fuckign comparison sites, first 4-5 results, practically the whole damn first page.
And all their 'comparisons' are autogenerated masturbation or something keyed in by interns at yet another worth-fuck-all tech startup.
Googles search engine is fucking garbage too.
This is Advertising taken to the level of mental pollution.
So I accidentally reinvented Pollard's algorithm.
See this absolute bullshit right here?
This fucking cunt of a problem designed by some dippity-do finger-painting fucking jackass at google doesn't work why?
Because for some *god damn reason* they decided it would be a good idea to setup it up in a way that when you use absolute cell references in a formula, you can't use functions in the formula too. No the other side has to be a literal or cell reference apparently.
What grinds my gears:
This, to me, seems retarded.
Take the value 0.931 for example.
Its represented in binary as
See those last three bits? Well, it causes it to
come out in decimal like so:
Which because bankers rounding is nowstandard, that actually works out to 0.930, because with bankers rounding, we round to the nearest even number? Makes sense? No. Anyone asked for it? No (well maybe the banks). Was it even necessary? Fuck no. But did we get it anyway?
And worse, thats not even the most accurate way to represent
our value of 0.931 owing to how fucked up rounding now is becaue everything has to be pure shit these days.
A better representation would be
00111101101111101010101100110111 <- good
00111111011011100101011000000100 < - shit
The new representation works out to
or 0.093100003898143768310546875 when represented internally.
Whats this mean? Because of rounding you don't lose accuracy anymore.
Am I mistaken, or is IEEE-754 shit?6
The fires in australia killed something like half a billion animals, and it's kind of sad, all that potential barbecue going to waste.
We have the means to solve this. With KNAWWWWLEDGE.
What we do is hook up buckets to a bunch of big ass drones and have some sort of contest to see who can put out the most acreage of fire. People will come from all over for the annual "australian fire olympics."
Shit, put a $1 million dollar bounty on "most acreage put out" stream it on twitch, youtube, netflix, you name it.
Fires would be out in a day or three.17
"4096 bit ~ 96 hours is what he said.
IDK why, but when he took the challenge, he posted that it'd take 36 hours"
As @cbsa wrote, and nitwhiz wrote "but the statement was that op's i3 did it in 11 hours. So there must be a result already, which can be verified?"
I added time because I was in the middle of a port involving ArbFloat so I could get arbitrary precision. I had a crude desmos graph doing projections on what I'd already factored in order to get an idea of how long it'd take to do larger
@p100sch speculated on the walked back time, and overstating the rig capabilities. Instead I spent a lot of time trying to get it 'just-so'.
Worse, because I had to resort to "Decimal" in python (and am currently experimenting with the same in Julia), both of which are immutable types, the GC was taking > 25% of the cpu time.
Performancewise, the numbers I cited in the actual thread, as of this time:
largest product factored was 32bit, 1855526741 * 2163967087, took 1116.111s in python.
Julia build used a slightly different method, & managed to factor a 27 bit number, 103147223 * 88789957 in 20.9s,
but this wasn't typical.
What surprised me was the variability. One bit length could take 100s or a couple thousand seconds even, and a product that was 1-2 bits longer could return a result in under a minute, sometimes in seconds.
This started cropping up, ironically, right after I posted the thread, whats a man to do?
So I started trying a bunch of things, some of which worked. Shameless as I am, I accepted the challenge. Things weren't perfect but it was going well enough. At that point I hadn't slept in 30~ hours so when I thought I had it I let it run and went to bed. 5 AM comes, I check the program. Still calculating, and way overshot. Fuuuuuuccc...
So here we are now and it's say to safe the worlds not gonna burn if I explain it seeing as it doesn't work, or at least only some of the time.
Others people, much smarter than me, mentioned it may be a means of finding more secure pairs, and maybe so, I'm not familiar enough to know.
For everyone that followed, commented, those who contributed, even the doubters who kept a sanity check on this without whom this would have been an even bigger embarassement, and the people with their pins and tactical dots, thanks.
So here it is.
A few assumptions first.
Assuming p = the product,
a = some prime,
b = another prime,
and r = a/b (where a is smaller than b)
w = 1/sqrt(p)
(also experimented with w = 1/sqrt(p)*2 but I kept overshooting my a very small margin)
x = a/p
y = b/p
1. for every two numbers, there is a ratio (r) that you can search for among the decimals, starting at 1.0, counting down. You can use this to find the original factors e.x. p*r=n, p/n=m (assuming the product has only two factors), instead of having to do a sieve.
2. You don't need the first number you find to be the precise value of a factor (we're doing floating point math), a large subset of decimal values for the value of a or b will naturally 'fall' into the value of a (or b) + some fractional number, which is lost. Some of you will object, "But if thats wrong, your result will be wrong!" but hear me out.
3. You round for the first factor 'found', and from there, you take the result and do p/a to get b. If 'a' is actually a factor of p, then mod(b, 1) == 0, and then naturally, a*b SHOULD equal p.
If not, you throw out both numbers, rinse and repeat.
Now I knew this this could be faster. Realized the finer the representation, the less important the fractional digits further right in the number were, it was just a matter of how much precision I could AFFORD to lose and still get an accurate result for r*p=a.
Fast forward, lot of experimentation, was hitting a lot of worst case time complexities, where the most significant digits had a bunch of zeroes in front of them so starting at 1.0 was a no go in many situations. Started looking and realized
I didn't NEED the ratio of a/b, I just needed the ratio of a to p.
Intuitively it made sense, but starting at 1.0 was blowing up the calculation time, and this made it so much worse.
I realized if I could start at r=1/sqrt(p) instead, and that because of certain properties, the fractional result of this, r, would ALWAYS be 1. close to one of the factors fractional value of n/p, and 2. it looked like it was guaranteed that r=1/sqrt(p) would ALWAYS be less than at least one of the primes, putting a bound on worst case.
The final result in executable pseudo code (python lol) looks something like the above variables plus
while w >= 0.0:
if (p / round(w*p)) % 1 == 0:
x = round(w*p)
y = p / round(w*p)
if x*y == p:
w = w + i
Still working but if anyone sees obvious problems I'd LOVE to hear about it.39
So I cracked prime factorization. For real.
I can factor a 1024 bit product in 11hours on an i3.
No GPU acceleration, no massive memory overhead. Probably a lot faster with parallel computation on a better cpu, or even on a gpu.
4096 bits in 97-98 hours.
Verifiable. Not shitting you. My hearts beating out of my fucking chest. Maybe it was an act of god, I don't know, but it works.
What should I do with it?225
If you're into compilers AND AI, check out Glow Compiler.
Explains the idea well, casual read, almost no math just clean code examples and lots of easy reading explaining the ideas and theory behind it.
You can find the project at https://github.com/pytorch/glow and and also https://ai.facebook.com/tools/glow/1
Heres a truly vitrolic and unnecessary rant:
Package control for sublime is all well and good
through the command palette, but it's just
fucking retarded. How about you point me to a
FUCKING COMMAND to actually INSTALL A
MOTHERFUCKING PACKAGE YOU
Under babel plugin while browsing packages
"Find it as Babel through Package Control."
What fucking command? How do I "Find" it?
The browse command just opens my
motherfucking browser. How do I fucking install
your fucking packages you assholes?
"Use autocomplete" except your god damn
autocomplete doesn't list "install package"
for some god damn reason because everything
web is a broken pile of utter shit, built
on a more shit, like a leaning garbage tower
of bullshit waiting for the smallest mistake to
take down the entire house of cards like
someone removing a leftpad on npm.
Maybe specify I have to enter
"install package" and THEN hit enter, and THEN
enter the GOD DAMN MOTHERFUCKING package name
on a separate god damn line for
some fucky reason.
Next time don't make a tool that breaks
motherfucking conventions. It's bad enough
every fucking look-at-me-im-smart cunt of a
dev and their dog has to invent a CLI and
then go and invent a new domain specific
language too motherfuckers.
Next tool that breaks convention around me is
gonna see the dev lit on fire.
fucking uppity cunts.
"Say thanks" the site say. I am not
feeling fucking thankful at the moment.
The least you can do if you're going to
contribute to open source, is not make things
actively fucking worse, least of all in the
FUCK count for this rant: 19 / 50,
RANK: RUSH HOUR TRAFFIC
0-5: GENTLE AS A LAMB
6-10: ANGRY GOAT
11-15: NUN WITH PMS
16-20: RUSH HOUR TRAFFIC
21-25: CANTANKEROUS VIETNAM VET
26-30: BREAKING SHIT
31-35: DOMESTIC DISTURBANCE
36-40: BIPOLAR EPISODE
41-45: DESPAIR EVENT HORIZON
46-50: BROKEN CAPSLOCK
50+ : MIDLIFE CRISIS / MASTER GRAND WIZARD
OF RANTS AND ANGRY-WORD MASTURBATION.
If you prefer to cheat, you may also include any
cursewords in general, but be warned, you'll
never know the sweet taste of victory when you
achieve the rank of master grand wizard.
Like when you were a kid, and you discovered
gameshark, and all your hopes of finishing that
one game became but a ruthlessly hollowed out
husk, somewhere where could-have-been childhood
memories and nostalgia go to die like the
graveyard of dreams
(the same place officer workers souls go).4
I was going to write an obligatory "fuck webpack" post but decided to skip it and try out rollup.
..and they said it would be better than webpack.
The more things change the more they stay the same.
At this rate maybe I'll just join the military and kill brown people in the middle east for a living.11
You haven't actually *begun* to learn anything until you've shouted FUCK THIS SHIT (or some variation) out loud at least once.
The anger is what makes it stick in your memory.11
If you look at the "lightweight business laptops" or business netbooks section of the market you'll notice almost all of them seem to have 4gb
Bitch, thats barely enough to run windows 10.
Looks like a market opening. If I were still doing upgrades and repairs I'd blame everything on low memory (well, a lot of slowness can loosely be attributed to lack of memory) and upsell new machines with more and better ram. Target 6gb, which is cheaper than 8 and offers a minor but noticeable boost, just enough to passably justify the increased cost to whoever is responsible for authorizing the upgrade.
I don't understand whats so hard to grasp about this. It's like companies trip over dollars to pick up dimes.4
@Owenvii made a post over at (https://devrant.com/rants/2359774/...) and I want to write a proper response.
The biggest thing you have to look out for as a new dev is the jobs which you accept to begin with.
This isn't minimum wage no more, this is "big league", well, maybe not apple or google big league, but it's not $9.25 an hour either.
Basically you don't want to work anywhere where 1. your labor will be treated as a highly disposable commodity. 2. where the hiring manager doesn't know how to do the job themselves.
The best thing you can do is, if you're new, and just breaking through (and even if you're not), is ask them common questions and problems/solutions that crop up doing the work. If they can answer intelligently that tells you the company values competence (maybe), enough to put someone in place who will know ability from bullshit, merit from mediocrity, and who understands the process of progressing from junior dev to a more involved role.
It also means they are incentivized to hire people who know what they're doing because the training cost of new hires is lowered when they hire people who are actually competent or capable of learning.
Remember, an interview isn't just them learning about you, it's your opportunity to interview *them* and boy, you'll be making a BIG mistake if you don't.
Ideally you want them to ask you to pair program a problem. If your solution is better than theirs then they aren't sending their best to do interviews, and it tells you the company doesn't fire incompetents. The interviewers response can tell you a lot too, if they critique your work, or suggest improvements, and especially if they explain their thinking, that is an amazing response to look for, it says the company values mentorship and *actual* teamwork (not the corporate lingo-bingo 'teamwork' that we sometimes see idolized on posters like so much common dogma).
Most importantly, get them to talk about their work and their team. If they're a professional, it'll be really difficult to pry anything negative about their co-workers out of them, but if they're loose-lipped and gossipy thats a VERY bad sign, regardless of what they have to say.
Ask to take a tour and do a meet n' greet of who you will be working with. If they say no, then it's no thank you to a job offer. You want to take every opportunity to get to know everyone there, everyone you'll be working with, as much as possible--because you'll be spending a LOT of time with these people and you want to rule out any place that employs 'unfireable' toxic assholes, sociopath executives, manipulative ladder climbing narcissists, and vicious misery-loving psychopathic coworkers as quick as possible. This isn't just one warning flag to look out for, it's the essential one. You're looking for the proper *workplace culture*, not the cheesy startup phrase of "workplace culture", but the actual attitudes of the team and the interpersonal dynamics.
Life is really short, and a heart attack at 25 from dipshit coworkers and workplace grief can and will destroy your health, if not your sanity, the older you get.
Trust and believe me when I say no paycheck is too grand to deal with some useless, smarmy, manipulative, or borderline motherfuckers at work constantly. You'll regret it if you do. Don't do it. Do you fucking do it. Just don't.
Take my words to heart and be weary of easy job offers. I'm not saying don't take a good offer that lands in your lap, I AM saying do some investigating and due diligence or the consequences are on you.1
So does devrant save all your rants?
Apparently I'm super narcissistic and enjoy reading my old rants and the responses to them. A lot. And I'm browsing through, clicking, reading all the old comments (you guys are really great, I love reading your comments) and I realize at the bottom of the list of my rants theres no pagination, no infinite scroll. It just ends at the bottom.4
If you're fascinated by compilers and want an easy read, take a look at http://homepage.divms.uiowa.edu/~sl...
It's math light and goes into theory in a casual manner. Was fun reading. Take a look.1
I just finished posting this but think it deserves its own post.
If you're creating a business or "startup" (as people like to call it these days) don't assume the idea is novel or investors will just jump on board. Focus on the business fundementals, money and cash flow, even before launch, unless you can afford not to. But really you can't afford not to. Selling before launch means that you're effectively doing two things 1 you're collecting new customers and income for the business and 2 you're. raising awareness at the same time. Obscurity is death and failure.
Get you a good sales team and marketer when the time is right.
Have a year of runway.
Identify the sites and groups your target audience and investors frequent. Start conversations now, buzz is the hardest thing to generate.
Start building relations with customers and potential clients now. Discuss launch, ask them if they'd be willing to pay up front before launch, in order to secure a "lifetime membership", offer it as an early opportunity and charge extra. Giving a discount out of the gate is a mistake B/c it says to potential investors that you don't think it's ready or worth it yet. Of course if it's between making 1. Some money or 2. No money, don't let it be a deal breaker, offer a discount. Going from no clients to any clients is a BIG deal. If you can do 1 you can make it to 10, if 10, you can reach 100, we etc.
No one likes asking for money and yet it is as important if not more important than development.
Julia is a smelly pile of steaming shit.
Jesus fucking christ would you look at that pile of pure utter shit. The dumbfuck dev somehow managed to break WHILE loops for devs coming from python, and I speak for myself and probably others when I write most of us python developers are functionally braindead. If you can somehow fuck it up for python devs, a significant portion of the people you're trying to attract (owing by the syntax), then you should probably just go head and delete your whole git repo now.
Julia is a prime example of why you don't listen to your users on fucking github about the direction of language development.
What a bunch of fucking booger eating retards.33
Home for the holidays and my step dads drunk and screaming for a fist fight. Current mood: Childhood PTSD.8
For all my ranting about Electron, does anyone have any experience with NeutralinoJs, an ultralight equivalent to Electron, weighting in at 5mb?
I'm surprised the last commit was in November and theres no people supporting it on patreon (yet)
It's either really good and practically unknown or somehow terrible in a way thats not already obvious.3
When I see a js project or other with instructions to "start by creating a manifest.json" I as a beginner expect this level of explanation about the available manifest options. What each line is for, why you would use it, and if it is optional or not.
Otherwise it's just another cryptic and useless file occupying space in the symbol table that exists in my head, floating there without reason, description or purpose..kind of like a js lib without adequate documentation on its manifest.json.
One more arbitrary thing I have to remember, (and thus will forget) each time I have to use that library.1
In reference to https://devrant.com/rants/2340071/...
I feel like the elf on the shelf.
Maybe I need more elfpussy at work.
I mean, while at santas workshop. These workplace benefit man, just aren't cutting it.
Ms. Claus just ain't doing it for me no more.
Half chub is best I can do. Fedex won't ship little blue pills to the north pole this time of year. Doctor won't prescribe any more either. Says "you have a problem john."
No shit doc! I ran out of my god damn dick pills and have to code my little elf fingers off in order to make MurderSimulator 9, VA-Denied-My-PTSD Claim DLC Game of the Year edition for Santa's evil subsidiary, Activision.
Chinese sweat shops got nothing on north pole gulag elf slave farms!
If you're into retro tech, and think "the uglier the better", the bloomberg computer is hot shit. Check it out.
In reference to:
Ideas are commonplace things. Just as a challenge today, in a two hour span, I came up with exactly 100 commercially viable ideas, some of which haven't even been tried yet by anyone that I know of.
This is me humblebragging, but it highlights an important lesson:
Good ideas are *genuinely* not worth the bytes or ink it takes to write them if you don't have the skill, connections, marketing, or cash to carry them forward.
I guarantee you, if you aggregated the commercially viable ideas of all the people on this platform, the list would number in the hundreds, probably in the thousands. And the list would be different every week.
Good ideas happen frequently enough because good ideas are a subset of the *ocean* of nonviable and stupid ideas that we all stumble on constantly, every day.
Like finding a needle in a stack of hay..or a nugget of golden corn by digging through piles and piles of steaming shit. It's a numbers game.2
In reference to https://devrant.com/rants/2333764/...
I've always wanted a desktop I could treat like apple maps. Pan and zoom (or on touch screens, pinch to exit, opposite to zoom).
Drag to create a new folder/region and name it, like a constellation of files. Zoom or click to expand, and zoom out to exit.
I guess it'd be messy af, but it's a different way of thinking and organizing for some of us.
Some of us think hierarchically (classic folders), and some of us think in two dimensions.
I dunno, I've just always found it easier to find things by organizing into 2d groups, no matter the number of files, versus having to scroll and search.
But you're reading a devrant by a guy who has north of 25-30k bookmarks, so I'm probably clinically insane anyway.7
Svelte daily reminder because no matter how much I bitch about new things I too cannot keep my eye off shiny:
Grunt, gulp, bower, webpack, rollup, yarn, npm, requirejs, commonjs, browserify, brunch, rollup, parcel, fusebox, babel,
wrappers for bundlers, frameworks on frameworks, then for css, theres scss, sass, less, stylus, compass, and for templates, handlebars, mustache, nunjucks, underscore, ejs, pug, jade, and about five billion other word-salad tools, all with their own CLIs, each in some way building on npm, but with their own non-congruent little syntax, like no one realized they were reinventing the same problems introduced by domain specific languages, most happy to announce "configuration takes a little time, but it's worth it!"
No, it's not. Just stop people. Just stop. You're not doing anyone any favors by creating another lib, all you're doing is tooting your own horn and self promoting. Use what exists and stop creating more shit for new people to learn, to add to the giant clusterfuck that is the 2019 hotmess known as "web development."
You're not special. You're not important. You're lib or tool will be famous for 15 minutes and no one cares what you've made.
If you want to contribute to web development, do us all a favor and contribute to global sanity by kindly deleting your contribution and any plans to contribute new solutions to problems that have already been solved.18
According to a site I was reading, theres 7 different ways to write a vue component.
Does anyone else think this situation is gonna come back to bite vue in the ass?
Did they even consider userbase fragmentation?1
"If flowers could grow on the moon. I'd plant you a garden of stars. So you could see in the dark,
that you're not alone."
I have a poetry book coming out (eventually) called "Steal this poem."
To date, my poetry has gotten one guy laid. Thats good enough for me.
And if you ever wanted to know what it feels like to be a poet, now you too can be one.
Steal this poem.8