I'd really love an answer to the underlying issue, but I fixed the bug by getting rid of some unnecessary columns getting pulled in by lookups into a couple of reference tables.
Posts made by Captain
-
RE: Help Bites
-
RE: Help Bites
@error said in Help Bites:
@Captain said in Help Bites:
I want to flatten this list of single items into one row with many many columns
Maybe look at the
pivot
operator.I'm not very well versed with the pivot syntax, but from what I remember, it's not quite suitable for this task because 1) I have to pull out two different types of fields (the
IsSelected
, which is a SQL bit, andAnswerText
, which is a long text -- this forces some logic that I'm unclear how I'd implement forpivot
), 2) it forces an unnecessary aggregation function.I tend to use cross and left apply for my pivoting. But if I take the cross apply approach, it would increase the complexity of the task.
For example, I could do a select like:
select QuestionFooBarIsSelected -- I'd probably use a * instead of enumerating them, but this is the idea , QuestionFooBazIsSelected , QuestionFooBinIsSelected , ... from dbo.ONE_ROW -- special table we have with one row, for when we need to force a select to return a row cross apply ( select IsSelected from #QuestionsAndAnswersTranspose where QuestionKeyName = 'foo' and ChoiceKeyName = 'bar' ) UnwantedTableLikeObjectName (QuestionFooBarIsSelected) ...
In other words, I still end up with the 500 subqueries.
I guess I could make one cross apply per question and then name the
UnwantedTableLikeObjectName
after the question to help manage the conceptual complexity, and then have multiple subselects in an anonymous table constructor (values
).That could be nice but it doesn't seem worth the effort unless I know it will work.
-
RE: Help Bites
I'm having a weird bug/situation with SQL Server. We have a document/report/whatever, and we save a JSON representation of it in the database to "freeze".
My job is to make stored procedures to feed the data into SSRS.
My main stored procedure does an algorithm like:
-- Get and save the static json representation declare @StaticJSON as json; exec GetTheJson @ReportId, @StaticJSON output; -- Parse out the fields I need. -- Because of the structure of the JSON, this is a little complicated. -- I'll hide that complexity in a fake cte (it's actually like 5 cte's): with QuestionsAndAnswers as ( do the processing ) -- Insert the many rows of questions and answers into a temp table. select * into #QuestionsAndAnswersTranspose from QuestionsAndAnswers; -- At this point in the script, #QuestionsAndAnswersTranspose contains many rows, -- each one representing a question and a potential answer. -- I want to flatten this list of single items into one row with many many columns: select ( select IsSelected -- the checkbox or radio button is selected from #QuestionsAndAnswersTranspose where QuestionKeyName = 'blah blah' and ChoiceKeyName = 'foo bar' ) as FirstSSRSField , ( select IsSelected from #QuestionsAndAnswersTranspose where QuestionKeyName = 'blah blah' and ChoiceKeyName = 'foo bar' ) as SecondSSRSField -- and many many more fields into #QuestionsAndAnswers
This seems to be mostly working. Definitely, the CTEs are working. But this is where I run into weirdness, because some of the fields are unexpectedly yielding
null
in the big long query.I spent some time trying to figure this out and didn't notice any typos. So I went for the big guns and made a very simplified version of the script where I get the frozen JSON, use the CTEs to parse; insert into the temp table; and then ONLY SELECT FIVE COLUMNS, which I copypastad from the main source.
The five columns are coming in as 0 and 1 instead of null.
WTF.
There are "only" like 500 columns, and no error is getting thrown. I mean I know that's a lot of columns, but the documentation for SQL server says a table can store 1024 columns, and a select statement can return like 4096 columns, so I shouldn't be hitting those limits.
WTF?
Also, there's no real "logic" to why the nulls are in these 5 columns, right in the middle of the query, and then there are at least a few dozen fields with 1's and 0's following it and working.
TLDR: query with many columns is returning null; query on the same data (but few columns) is returning expected data.
Anybody seen something like this? Ideas?
-
RE: The Official Status Thread
Goddamn, it took like an hour of manually extracting and rejiggering the JSON to get Jinja to accept it. Kind of defeats the point of automating this shit.
And it's only like 450 rows (partial) rows out of the DB. 100KB.
-
RE: The Official Status Thread
It used to be that when I ran a SQL query in Visual Studio (2017), and the query had a
for json path
clause in it, I'd get a single result contained in a "grid". That single result was a fragment of the JSON, and I could click it to see the whole thing.Recently, Visual Studio 2017 started throwing OUT OF MEMORY errors for no good reason. And now the magic link to my full JSON is missing. I mean, the link is "there" but clicking it does nothing. Literally nothing but waste my finger tendons.
-
RE: When your actions influence the outcome in a videogame it's always meh. And when there are multiple endings they are all meh too
@Arantor mentioned the incredible machine. That game was kind of fun when I tried it a few months ago. But, at the time, I was actually looking for a different game with the same premise I had played in like 2003. It was a Mac game, with somewhat realistic physics. I think Ambrosia Software made it but I can't find any mention of it on their old website (on the Wayback Machine, now).
That is a sad ending.
Edit: it was Enigmo (or Enigmo 2). Hurrah!
-
RE: When your actions influence the outcome in a videogame it's always meh. And when there are multiple endings they are all meh too
I started playing Cities Skylines a few weeks ago. It's not really story driven, but the multiple endings I've seen have been pretty good.
-
RE: Are brand name flashlights worth the price?
@sockpuppet7 I have a general goal of keeping at least one small flashlight per drawer near where people sit or are. (So one in the bathroom near the toilet, a couple in the kitchen, a couple in the living room, etc) I used to get like a 5 pack of "Kootek" mini led flashlights for that but they got a little expensive and I ended up spending more per unit for a two pack of Eveready tactical leds. I figured it would be an upgrade for not much more.
They are bigger and have more battery capacity and are brighter. Otherwise the build quality is approximately the same.
I know this probably isn't exactly what you mean by brand name, but unless you have some pretty specific needs I think a 2 for $8 pack of Eveready flashlights does a great job.
Also, depending on what you want them for, it might makes sense to get a few different form factors, like a "lantern" or two to "fill a room" with weak light (as opposed to having a spotlight in your hand).
-
RE: Suggestions for new controller
XBox Wireless Controller arrived today. I got the "Core" model, I think, in Carbon black. Build quality is nice enough -- there's probably better out there but this is pretty premium feeling. Turned it on and it wanted to sync to my laptop. Everything just worked right.
I guess I'm a little surprised it came with two double AA batteries. I thought it was a rechargeable thing, since I see charging stations for sale. But I guess they all come with their own battery packs and battery covers. Hm, okay then.
So far so good, happy I got it.
-
RE: Suggestions for new controller
Seems like the consensus is to go with Microsoft. Makes sense, I put one in my cart.
Out of curiosity, what is the experience like with a name brand PS4 or PS5 controller, or Nintendo a controller?
One of the things I really liked about the Steelseries POS is the layout, which had PS style control sticks and XBox style buttons. "Theoretically" it would have been great for, for example, Katamari, which I bought recently.
-
Suggestions for new controller
A few years ago, I wanted to set up a cheap little PC to use for old schoolish gaming. Games from 2000 to 2010, more or less. Civ, Rollercoaster Tycoon, Rayman. Maybe some indie games.
I read some reviews and ended up picking up a pair of Steel Series Stratus XL bluetooth controllers for my little rig, and a sweet German keyboard with built in trackpad, etc.
My rig never actually worked right. I would get these "phantom inputs", mostly going "up", which made it impossible to control any application with a scrollbar (or most games). I did some light troubleshooting and thought it was the keyboard (since, "obviously", it couldn't be BOTH controllers)
I tried using my much newer laptop for some light gaming the other day, and I connected the Steel Series controller and mother fucker it did it again. So clearly the problem is the controllers. That pair of controllers was a birthday present from my wife like four years ago, which I used barely for 4 furiously frustrating hours. $60 each. I did some light reading about the symptom and there is no conclusion except that Steel Series sucks and I should never buy that shit again.
OK, so fuck that.
What should I buy today to replace those pieces of shit. Help me figure out what to buy.
So far, I am looking at official Xbox controllers; the Amazon Luna controller; and maybe like a Logitech thing. Kind of interested in 8bitdo brand. Are there any good generic controllers? What are pros/cons of these choices? Talk to me about controllers today.
-
RE: From Pure Windows 7 to Linux Dual Boot
@BernieTheBernie said in From Pure Windows 7 to Linux Dual Boot:
apt install mono ... E: Unable to locate package mono
And now?
Did you do an
apt update
? -
RE: From Pure Windows 7 to Linux Dual Boot
@BernieTheBernie said in From Pure Windows 7 to Linux Dual Boot:
Me in love? No, not me, but .
That machine just works: "real" Windows (i.e. 7), all the programs I (usually) need, just click and go. Worx.
Only occasional shit as mentioned in the starting post make things sometimes uneasy.
No, I do not want to setup a new machine, which likely comes with Windows 11 , won't let me install my Home&Student MS Office from 2008 (?), will likely barf at some external hardware (good old audio device, with "loopback"), won't accept the docking station, browsers need to be tuned to not autoplay every shitty video and to fuck those animated images, ..., etc.
NO.I hate all that shit too. Which is why I standardized on Debian stable and use configuration management to configure all my machines.
Basically, once you have set up your configuration manager (I use saltstack), every time you manually configure something, you copy the configuration file to your configuration manager's git repo and write a little bit of JSON to let your configuration manager know it has more stuff to do.
Then, next time you install that feature on a machine it ends up getting configured by the manager.
Yes, there is a cluster of fucks that can happen and they have happened to me. I still see configuration management as a net win though.
-
RE: From Pure Windows 7 to Linux Dual Boot
Out of curiousity, why are you so in love with your laptop? It's more than 10 years old and from the sound of it it isn't anything special.
I mean, I have a desktop from 2008 I still use as my primary workstation/virtualization machine. To be fair, it has 8 Xeon cores and 16 GB of memory. And it's my home's plex server and virtualization machine and has like 8 hard drives attached.
(My newer, nicer workstation has like 96GB of memory and like 32 cores, but... I haven't had time to do the things I planned with it since my kids were born).
Your laptop isn't even a nice MacBook or anything special like that.
Debian just released a new stable. I'd start on maybe Buster and do a dist-upgrade or two. I bet Buster would boot up how you want.
-
Mixed DML and DDL in T-SQL (was: Lambdas/functors in T-SQL)
This might be a little bit of an X-Y question, since I have thought about how I'd do it in a "straight forward" way but have questions about how to do it in T-SQL specifically.
So I've been working on this project where we have to delete a bunch of data according to GDPR style rules. That includes going into our temporal tables and deleting data out of them, which isn't allowed unless you turn the temporality feature off.
OK.
But altering a table's temporality isn't "transactional". If something in the rest of the transaction fails, the alter statement doesn't get rolled back, leaving the temporality feature turned off.
This seems like a job for a wrapper, maybe called
spModifyTemporalTable
, that accepts the name of the base table, the temporal table, and a lambda that acts on the tables but can fail. Theoretically, we would run the lambda in a try block and make sure that even if the transaction fails, we clean up the mess and turn temporality back on so the system can run as usual in the morning.But how do I cleanly express "a lambda" in T-SQL? I guess I can do
exec
and pass in a string containing the DML. I find this objectionable but maybe it's my only good option.I know
exec
would work if I pass the name of a stored procedure in, but I don't necessarily want to name and register all the blocks I need to write, especially since the only difference between them in which table I'm deleting from (i.e., maybe some join structure, but it's hardly logic).Or maybe there's just a better pattern? My driver stored procedure already just calls one stored procedure after doing some setup logic. Maybe I should just set up a list and a loop in that outer one that goes and checks if the temporal tables are all turned on after the inner sproc fails. This is my least preferred option, since it forces me to maintain a list of temporal tables. (Granted, I'd be "implementing" the same list if I used a more localized wrapper around each temporal table modification, but I think errors in the code would be a bit more obvious).
What do ya'll think?
-
RE: Bizarre SQL Server Errror
@izzion said in Bizarre SQL Server Errror:
@Captain said in Bizarre SQL Server Errror:
@izzion said in Bizarre SQL Server Errror:
@Captain said in Bizarre SQL Server Errror:
@izzion I'm kind of stuck with the function because of cranberries like my team lead really really wanting it. And it kind of makes sense, I have to do this stupid formatting thing in a bunch of data sets in this report and others.
I suppose I could change the parameters to the actual address parts I want to concatenate instead of doing a lookup by the table's composite key and then doing the concat.
But it really does seem like this isn't the code's fault, right? Like there's some kind of environment issue breaking the code's semantics.
Maybe the reparametrization idea would get around whatever is breaking the semantics. (I.e., if I find the latest address in the outer sproc and pass the address parts into the function)
I would put 100% of the blame for this on the code. The code is trying to get the latest effective address as of the specified date, but it's not actually ensuring it gets exactly zero or one address (like the SORT & TOP 1 approach would guarantee). And as a result of the poor design for trying to figure out which address is the right one, it's doing an unnecessary self join which is destroying the query optimizer's ability to figure out how to get the data (as evidenced by the double NOLOCK in the query, which is the SQL equivalent of "ON ERROR CONTINUE NEXT" in terms of rank code smell).
Sure, it might work as long as the data is immaculate. But immaculate data only exists in local development.
The bosses want the nolocks.
And they made me switch from using top 1 to the self-join on max value thing to avoid a really costly sort.
This query is really really simple to be destroying the optimizer...
Self joins are usually instant query plan explosions (especially on SQL 2016+). And that risk is much higher with the two overlapping WHERE clauses in the two pieces of this query. I'd expect to see a function like this causing 1-2 full scans of the address table per row in the original query and then result in the NOLOCK becoming necessary in order to prevent the query from causing massive blocking on the Address table.
Obviously, my psychic troubleshooting might be wrong. But in my experience, the self join is a massive code smell, and the NOLOCK is a much worse code smell. And if the sort is causing a performance problem, the better solution would be to add an index on DT_EFCT_START,DT_EFCT_END
Sorry, I'm not even trying to argue with you. I really appreciate your help.
I just find it so confusing and frustrating that the "same" query throws an error in one context and not another. (And that is way more interesting to me than actually fixing this POS )
And I don't see why a slow and shitty query plan would do that unless it was actually triggering buggy behavior in the server. If the dt_efct_starts are unique then the runtime should be able to pick a single maximum one and then the self-join on that composite PK should just do its thing, slow as it may be.
I got rid of the nolocks and the function worked correctly, with no error.
I agree changing to a more robust approach is reasonable.
-
RE: Bizarre SQL Server Errror
@izzion said in Bizarre SQL Server Errror:
@Captain said in Bizarre SQL Server Errror:
@izzion I'm kind of stuck with the function because of cranberries like my team lead really really wanting it. And it kind of makes sense, I have to do this stupid formatting thing in a bunch of data sets in this report and others.
I suppose I could change the parameters to the actual address parts I want to concatenate instead of doing a lookup by the table's composite key and then doing the concat.
But it really does seem like this isn't the code's fault, right? Like there's some kind of environment issue breaking the code's semantics.
Maybe the reparametrization idea would get around whatever is breaking the semantics. (I.e., if I find the latest address in the outer sproc and pass the address parts into the function)
I would put 100% of the blame for this on the code. The code is trying to get the latest effective address as of the specified date, but it's not actually ensuring it gets exactly zero or one address (like the SORT & TOP 1 approach would guarantee). And as a result of the poor design for trying to figure out which address is the right one, it's doing an unnecessary self join which is destroying the query optimizer's ability to figure out how to get the data (as evidenced by the double NOLOCK in the query, which is the SQL equivalent of "ON ERROR CONTINUE NEXT" in terms of rank code smell).
Sure, it might work as long as the data is immaculate. But immaculate data only exists in local development.
The bosses want the nolocks. (on every table in every lookup...)
And they made me switch from using top 1 to the self-join on max value thing to avoid a really costly sort.
This query is really really simple to be destroying the optimizer...
-
RE: Bizarre SQL Server Errror
@izzion I'm kind of stuck with the function because of cranberries like my team lead really really wanting it. And it kind of makes sense, I have to do this stupid formatting thing in a bunch of data sets in this report and others.
I suppose I could change the parameters to the actual address parts I want to concatenate instead of doing a lookup by the table's composite key and then doing the concat.
But it really does seem like this isn't the code's fault, right? Like there's some kind of environment issue breaking the code's semantics.
Maybe the reparametrization idea would get around whatever is breaking the semantics. (I.e., if I find the latest address in the outer sproc and pass the address parts into the function)
-
RE: Bizarre SQL Server Errror
OK let the bitching commence.
All the goddamn DT_EFCT_STARTs in the data that are triggering this BS are unique.
-
RE: Bizarre SQL Server Errror
So one thing I do know is that there were overlapping dates in the address data.
@izzion said in Bizarre SQL Server Errror:
Are you sure the AsOfDate you tested with is the one that's actually getting passed into the function for all possible rows that can be calling the subquery?
Yes. It's actually a variable in the outer sproc so I threw it into the outer sproc's select when I started dissecting the function.
Depending on how fugly the Normalize function call is
I did a good job on writing it, but it handles a lot more cases than your example (there can be "any" number (usually 5) of blank spaces in the field because of craisins).
@boomzilla said:
I'd look for duplicate DT_EFCT_STARTs by:
Yes, that is my thinking too. But then I don't understand why the function version of it breaks and the raw select just returns one row with one field with a properly formatted address line.
I can't exactly normalize all the address data -- the fix "has to" happen in the stored procedure or function.
I am aware that there "were" overlapping dates in this data that's throwing the error, but at the same time, setting an end date resolved the stupid error. (I still need to fix the function -- there are other addresses out there with overlapping dates and this needs to work).
The top 1 idea makes a lot of sense. Or maybe trying the subselect with another join field.
I'll mess around with this a while this morning and probably have more bitching to do later. Thanks everybody.
Oh yeah, of course stackoverflow closed my question.
-
RE: Bizarre SQL Server Errror
Lightly anonymized function definition:
CREATE FUNCTION dbo.fnFormattedAddressLine (@GroupCode int, @PrimacyCode int, @AddressGroupId int, @AsOfDate datetime) RETURNS varchar(100) AS BEGIN RETURN ( select trim( concat( dbo.fnNormalizeBlankOrEmptyString( a.AD_STRT_NBR ) , case when dbo.fnNormalizeBlankOrEmptyString(a.AD_STRT_NBR) = '' then '' else ' ' end , Anon.fnNormalizeBlankOrEmptyString(a.AD_STRT_NME) , case when dbo.fnNormalizeBlankOrEmptyString(a.AD_STRT_NME) = '' then '' else ' ' end , case when dbo.fnNormalizeBlankOrEmptyString(a.AD_APT) = '' then '' else ' Apt ' + dbo.fnNormalizeBlankOrEmptyString(a.AD_APT) end ) ) as AddressLine from dbo.ADDRESS a with (nolock) inner join ( select max([address].DT_EFCT_START) as DT_EFCT_START , [address].ID_ADRSS_GRP , [address].CD_GRP , [address].CD_GRP_TYPE from [address] with (nolock) where DT_EFCT_START <= @AsOfDate and ( @AsOfDate <= DT_EFCT_END or DT_EFCT_END is null ) group by [address].ID_ADRSS_GRP, [address].CD_GRP, [address].CD_GRP_TYPE ) as LatestAddress on LatestAddress.ID_ADRSS_GRP = a.ID_ADRSS_GRP and LatestAddress.DT_EFCT_START = a.DT_EFCT_START and LatestAddress.CD_GRP = a.CD_GRP and LatestAddress.CD_GRP_TYPE = a.CD_GRP_TYPE where a.CD_GRP = @GroupCode and a.CD_GRP_TYPE = @PrimacyCode and a.ID_ADRSS_GRP = @AddressGroupId and a.DT_EFCT_START <= @AsOfDate and ( @AsOfDate <= a.DT_EFCT_END or a.DT_EFCT_END is null ) ) END
-
Bizarre SQL Server Errror
Hey all,
I'm running into a really really weird error with SQL Server. I can provide details about the SQL server if necessary but I'd rather jump right into the description of the problem.
So, I have a stored procedure that is the code-behind for a report. A user reported that the report didn't work, and so I ran the report in Visual Studio with the same parameters, and I got the error:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
OK, that's a shitty error. It doesn't even tell me a line number (at least, not a relevant line number).
So I checked every single subselect in the stored procedure and couldn't find one that produced more than one value.
OK.
The point of the stored procedure is to do a
select
at the end, so I basically copied all of the code out of the sproc and commented out all the fields and tested and tested until it threw the error again.It finally did, which told me that a specific function was doing the error.
OK.
So I verified that this function was throwing the error by calling
select MyFunction( @MyId, @Etc )
and it threw the error.
OK.
So then I went to the function definition and copied THAT code out. I ran that query and WTF it's fucking working. It's giving me a single row.
OK WTF.
To summarize, I have a function dbo.MyFunction that throws an error when I call it but whose underlying query does not.
Has anybody run into this before? Any idea how to solve it?
-
RE: Why the MCU is succeeding where the DCU is failing
@boomzilla There's basically two; and under the law you're supposed to stop (i.e., not kill) if you can do so safely.
-
RE: Help Bites
@Gribnit said in Help Bites:
our N here is going to devolve handily to n rather smaller M as you need only exhaust connections within a shared road name. You will need maps of collections for an initial collection under names.
Resolving within a name won't fall down to box-based approaches since duplicated roads could run in diagonal parallel. You can, however, make the link-up more efficient by placing the ends in a quadtree or octtree.
The case of a road that has a name at point A until B, another name from B to C, then resumes the original name, would be seen as a duplicate - if you hate that a lot, you will need to instead do linkup first, in which case you will need a quadtree.
And, since my initial read ignored the presence of unnamed nodes, you will definitely need a spatial tree structure off the bat. You get N log N, (roughly)Yeah, this is an index problem for the discrete topology on a disconnected graph.
-
RE: The Official Status Thread
Status another Tuvix meme on star trek shit posting. These people act like they have never watched "The Measure of a Man".
-
RE: Why the MCU is succeeding where the DCU is failing
@hungrier said in Why the MCU is succeeding where the DCU is failing:
They also snatched defeat form the jaws of victory by shoehorning Captain Marvel in at the last minute, including her own movie. What would've been good and made narrative sense:
She was wasted, for sure. I mean, she was "crucial" to the plot insofar as she singlehandedly destroyed Thanos' fleet. But I wanted more from her. And she was even wasted in her own movie.
The problem is that she's basically a cosmic-level Superman. She's strong and flies around.
What we got instead:
Captain Marvel: apparently she's been around since the 90s but nobody in the MCU ever heard of her before
She was on the other side of the galaxy for like 15 years.
I'm really enjoying phase 4. Loki and WandaVision were great. The Spiderman multiverse movies are awesome. Doctor Strange and the Multiverse of Madness was Doctor Strange (that is, awesome if you like doctor strange but maybe not everyone's cup of tea)
Haven't seen Morbius yet.
Ms Marvel was a good low stakes origin story. (And it confirmed that there are mutants in the MCU, opening the door the the new Deadpool and Wolverine movie) So was Hawkeye, and She-Hulk for that matter. And even Moon Knight, I guess. A lot of people liked that one but I ended up not finishing it.
Not sure why people are complaining about phase 4. They can't all be the end of a saga. I guess it could be like @MrL said; Endgame was the end of a ride, and people don't want to get on it again.
Fair enough, but I'm still having fun.
-
RE: Some movie, maybe Japanese? Or not.
@Gribnit said in Some movie, maybe Japanese? Or not.:
So, this one, it has a scene which was not very relevant, where a disaffected Japanese woman in adult adolescence is walking through a mall food court. At least, I think it was a food court. Pretty sure it isn't in the
Ichi
... series, but pretty sure I saw it within a month ofIchi 1
, if that helps.There are also other people in the movie, who are also Japanese. It seemed to have something to do with an attempt to adapt to ambivalent cultural norms, too.
If you have seen this movie, you know why I'm looking for it. I apologize that this is the most helpful piece of information I have.
It sounds vaguely like https://en.wikipedia.org/wiki/Eden_of_the_East.
-
RE: Random Question of the Day
@jinpa said in Random Question of the Day:
What online hardware supply sites have you had good luck with?
build.com has lots of hard to find parts, like sugatsune stuff for sliding doors and architectural panels.
-
RE: Home network revamp suggestions
Ubiquiti does make nice routers. Their network gear can do everything you're asking about.
But some of the routers are hot garbage. I've had so much trouble with US-Gs I will never use one again.
Don't use a Ubiquiti Unifi US-G.
In the $50-$100 range, a Ubiquiti ER-X is hard to beat. The better Unifi routers are probably better than US-G and fit in with Unifi gear, which is nice.
(So what is Unifi? It's basically Ubiquiti's software defined network system. Unifi routers, wifi access points, and similar all get configured using an app on your phone or desktop. It's pretty good but not perfect. I'd say it's worth it)
I haven't used any of their new routers. I like their switches and have two rackmount switches at home.
They make good access points. I am planning on getting a couple of UAC-IW ("in-wall" access points with 4 port switch). They can use POE, so consider how you will power them (i wish I had spent the extra $150 on a POE switch, for example)
The ER-X I mentioned above isn't Unifi. There's another software defined network product you can use to manage an ER-X remotely but I don't do that for the home.
Oh and you will need "usually" need a Unifi controller. I use a raspberry pi for mine. Some Unifi routers come with it built in. I don't like the virtualization for it. It's a big pain in the ass to have to bootstrap your network to get docker/libvirt running to configure the network. (This mostly applies in segmented networks, like the one you want to build, so I want to mention it).
If your pihole is running network infrastructure, I'd keep it on the raspberry pi and install the unifi controller on it.
-
RE: Am I doing non-UI threading right?
@dkf said in Am I doing non-UI threading right?:
@Zenith said in Am I doing non-UI threading right?:
So no I don't want their grubby mitts anywhere near code too brillant for their microbrains.
I remember a friend complaining about that. His solution was to make the code even more brilliant, such that you'd need an advanced degree in mathematics to understand what it did and why it was so screaming fast. I know it involved moving something to do with non-standard fourier transforms onto a GPU so that they could be used to do automatic image registration in real time despite the distortions in the equipment acquiring the images, but it definitely was above my knowledge level...
The upshot was his code caused everyone who interacted with it to go "How the hell does that even work?!"
Wavelets man
-
RE: Entry level philosophies: How should new developers become exposed to a codebase?
In my first development job, I started off as a "maintenance" developer but I was doing features or new reports in 3 months.
It worked better than it seems to for you, but that shop was a full on agile place, with pair programming and everything. By the third month I didn't need the hand holding and could do it "all" myself.
I'd suggest something "like that". Have a senior (or even the team lead) buddy up with each of the new guys for an hour or two a day and give them enough guidance to be successful and complete.
Heck, depending on how big the team is, you can maybe rotate all the seniors so they all meet and work with all the juniors.
-
RE: Network access from WSL with ZScaler
@Bulb said in Network access from WSL with ZScaler:
@remi Your options are basically:
- Get the Exceed TurboX working.
- Mobaxterm (free for commercial use if you install it yourself, license needed if installed centrally)
- XPra (I used it on Linux with containers when directly exposing the main X server resulted in some glitches and I've been meaning to try it on Windows now but didn't get a round toit yet)
- VcXsrv
I am running Debian in WSL. As far as I know, an X server will not work because modern X's rely on systemd, which doesn't work on WSL.
So I use mobaxterm to run an X11 server. And Xpra to provide session management with remote VMs.
Xpra is nice.
-
RE: Ubuntu and settings and WiFi
@slapout1 said in Ubuntu and settings and WiFi:
That's nothing. Back in the dial-up days, I installed Ubuntu on a computer using a CD. Then I tried to get online. But the driver/program I needed to get online via dial-up wasn't included on the CD. To get it, you had to go online.
I did that one last month with Debian 11.
It wasn't their fault, but I had to bootstrap a network driver without a network driver to help.
-
RE: Help make my youtube feed better!!
@Parody Yeah Defunctland is cool.
That reminds me that I like Technology Connections, too.
-
RE: Help make my youtube feed better!!
Educational
PBS Eons
PBS Storied
3 blue 1 brown
MIT Open Courseware
Steve Mould
Electroboom
eevblogMystery/Horror
Bedtime Stories
Shrouded Hand
Lazy Masquerade (new to me)Formula 1
Formula 1
Behind the Drive
Driver 61
Formula World
Chain BearFood
Best Ever Food Review Show
Emmymade
Adam Ragusea -
RE: Scientific Science
@HardwareGeek there is definitely evidence that they are 'almost constant' (i.e., imperceptibly different from constant) even on large time scales. But the "inflation" of the early universe isn't easily explained if it's constant.
So the idea is that there was a "phase transition" in the early universe which "changed the laws of physics themselves". (Or rather, if we think of the universe today as being "like a gas", the universe was like some "exotic" state of matter like Einstein-Bose condensate with different properties. I do not claim that the early universe was E-B condensate, but just suggesting a parallel) The phase transition is what caused the changes, and they aren't going to change by themselves, aside from random quantum fluctuation.
There is evidence of a few phase transitions, such as the electroweak symmetry break which turned electromagnetism and the weak nuclear force into separate forces.
-
RE: Scientific Science
@lolwhat scientists aren't panicking. They're creaming their pants at new data.
For example, scientists are now proposing a new quantum field called the "Quintescense" which seems to be defined on a projective space of the space-time manifold to explain dark matter and gravitation. This is based on... observations like how the cosmological constant probably isn't constant.
-
RE: Fun with maps
@Bulb said in Fun with maps:
Cheese is a base ingredient. You normally start with Marghareta, that is sugo and mozarella, and then add toppings. The cream-based options have greater variation of which cheese is included, but it is very rare that there isn't any.
Base ingredients are flour, water, and yeast.
-
RE: WTF Bites
@boomzilla said in WTF Bites:
gui and just use it that way instead of switching between the slightly different ways of the at least five different IDEs I've touched recently.
I have avoided using any graphical source control programs for years and the only regret I have is that it makes moving files around a bit more inconvenient but it's still been a huge net positive in my life.
Now that Windows has multiple workspaces, I keep a workspace open for each of my projects, and then a couple for common tasks like "Git & ADOS"
I actually use Visual Studio's Git client for my main workflows and drop down to Git Bash for "complicated" things like when I make a mistake and need to stash.
-
RE: Fun with maps
Can confirm florida loves pepperoni. So glad I moved away.
Cannot confirm olives in Oregon. Maybe it is, but I have insufficient data to judge.
King of toppings is cheese. /thread
Runner ups: sausage and jalapeno; cheese and onion; pesto and onion; bbq chicken pizza toppings; buffalo chicken pizza toppings;