torkell: (Default)


I've finally upgraded to FTTC broadband! I've no idea where the cabinet is but it can't be far given the speed I've got out of it (and I suspect from the modem's stats there's another 5Mb/s of download I could achieve).

My previous ADSL connection was fairly decent as I'm not that far from the exchange - I was on about 11.5Mb/s down and 1Mb/s up (it used to be faster but something glitched out on my line and the exchange decided to target a larger SNR) - but the comparatively slow upload has been annoying for a while. So while doing price comparison for car insurance (protip: if you want to keep your customers, don't add a 20% loyalty penalty!) I also plugged the numbers in for broadband, and for less than what I was paying BT and Sky I could move to plusnet's top package. So I did just that!

Of course as with anything involving phones in this flat nothing was simple and it took 6 weeks to actually switch over! From the updates I got from plusnet either the broadband or the phone order would be rejected by Openreach which meant they had to cancel the whole lot and resubmit it again. It appears that Openreach's system is really confused by the concept of transferring an existing number - one sequence of messages went "transfer this number to plusnet", "you can't have that number, it's in use", "I know, that's why I said transfer". I've ended up with a little collection of "sorry you're leaving" letters from BT all with a different end of service date!

But the order finally went through last week, phone service switched across this morning (taking my ADSL out with it, as expected), and while at work I got a text to say the new broadband had been activated. And I now have shiny fast intertubes!

Fair play to plusnet, they did all the pestering of Openreach without me having to chase them and they've not started billing me until the move actually went through.
torkell: (Default)
So Craig and I were nattering the other day and the topic strayed onto video storage, and just how much could you store in a shoebox of memory cards.

Oddly enough this isn't the first time I've done that particular thought experiment, so I've already got the numbers - a VHS-sized box occupies the same space as 2918 microSD cards. And a quick search on Scan shows that 512GB microSD cards are now a thing, so that's an utterly mindboggling 1.4 petabytes of storage. Craig guesstimated 3Mb/s for HD-quality video (conveniently 4x my previous guesstimate to match the 4x capacity increase since then), which would work out at 120 years worth of non-stop video.

But that's not the most mindboggling part of it - Scan will sell that 512GB microSD card for £50.39. So to buy that much storage costs a little under £150,000 which is, well, a lot of money but not as much as I expected. It's completely impractical - how would you physically read/write that many memory cards - but 2.5" form factor SSDs are cheaper and practical to use in massive disk arrays. It's actually possible these days to build stupidly-high-capacity storage out of SSDs without being the size of Amazon.


xkcd 691: microSD

That card holds a refrigerator carton's worth of floppy discs, and a soda can full of those cards could hold the entire iTunes store's music library. Mmmm.
torkell: (Default)
What I want to do: use my laptop.

What I actually end up doing: go digging through the settings to find out why I have a new "Meet Now" icon in the tray and how to kill it with fire.

Apparently it's a new Windows 10 group chat feature, and totally not an unexpected at all. Because random new icons can't possibly ever be due to malware...

I like how on one hand techies are continually trying really hard to educate users about phishing, and then on the other hand Microsoft pulls stunts like this. "Yeah, if you see something that you didn't install then it's probably malware. Except when it isn't."
torkell: (Default)
So, I'm not sure if I've bought a wifi router or a Cylon Raider here...



Work colleague: Cylon raider. So say we all.
Housegroup friend: Or a Martian warship from the original War of the Worlds...?

Of carpentry and networking )



Another housegroup friend: Oh crap, it activated the weapons systems 😳
torkell: (Default)
Did you know that a foam dust filter is capable of milling away the leading edges of a PC case fan?



That particular fan was mounted to the top of the case as an inlet (in a vain attempt to have positive internal pressure so the CD drive doesn't become a dust filter), and appears to have sucked the foam filter away from the holder and then merrily chewed away at it. Well, that answers the question of where the buzzing sound in the PC was coming from!



Anyway, after hoovering out some of the dust and putting everything back together (without the filter), I was curious as to how effective the cooling actually is, especially as the the CPU heatsink needs attacking with a can of air. So I set CPU-Z running a stress test and left it for a good while... and the result is the system is remarkably stable for temperatures. It holds the CPU (a Core 2 Quad Q6600, rated at 95W TDP) to <70°C on all cores and the motherboard is reporting 42°C, with spare headroom on both CPU and case fan speeds.

With that proved out I mixed things up a bit by starting a render test in GPU-Z as well. That caused the case fans to ramp up to near-full speed to keep the system temperature at 43°C, with the GPU reporting 64°C and the CPU cores actually slightly lower (thanks to the increased case fan speed).

There is some method behind this investigation: I've got several upgrades planned for Nyx, including a shiny new Ryzen 9 5900X (if I can find one of 'em), and that eats a bit more power than the current CPU. And unlike Craig I don't have a gargantuan computer case that can swallow heatsinks with dual 140mm fans, so I need to pick my cooling system with care.
torkell: (Default)
[livejournal.com profile] boggyb: Wtfteams
[livejournal.com profile] boggyb: I'm looking at a teams chat where messages I sent are out of order
[livejournal.com profile] boggyb: Also, wtfskype
[livejournal.com profile] pleaseremove: also wtf skype, i didn't get your notification last night
[livejournal.com profile] boggyb: Skype on my phone didn't update this chat history until I went back to the main screen
[livejournal.com profile] boggyb: Can I have MSN Messenger back please?

For added lols, I got the other person in the Teams chat to send me a screenshot. They saw my messages in yet another order!
torkell: (Default)
Today's quiz of "decode-the-marketing-buzzword" is on wifi standards. Your starter for ten: what does "AC1600" actually mean?

I'll give you a hint: it's not 1600Mbps 802.11ac wifi. Because the marketroids have decreed that for dual-band access points the number is the sum of the 2.4GHz and 5GHz radio speeds. Which means that in some cases, smaller numbers are actually faster.


The point behind all of this is another round of computing upgrades. Having bought a new shiny toy, it occurred to me that the bottleneck in my networking is now my router. It's a fairly decent Netgear DGND3700v2, but is only an N600-class access point which decoded from marketing-speak is "802.11n, 2x2 TX/RX streams, 300Mbps 2.4GHz and 5GHz". I bought that back in 2013 and later in 2014 I added a N600-class PCI-e card for the desktop (and decoded from marketing-speak that means "802.11n, 2x2, 300Mbps 2.4GHz or 5GHz") - at the time that was a decent upgrade from 802.11g, but time marches on and there's much faster kit available. In particular, the laptop has an Intel Wireless-AC 9560 chip ("802.11ac, 2x2, 867Mbps 2.4GHz or 1.73Gbps 5Ghz") so it's worthwhile bringing both desktop and router up to 802.11ac.

Upgrading the desktop is an easy choice: Gigabyte do a 802.11ac PCI-e card which is really an Intel Wireless-AC 9260 M.2 card (basically the same as the 9560 in a different package) and a PCI-e and USB to M.2 E-key adapter to go with it. Being PCI-e I can drop it straight into the eventual replacement for Nyx, and being a M.2 adapter when 802.11ax becomes mainstream I can drop a newer module into it.

This just leaves the router, which is where all the marketing-buzzword hilarity starts. The ideal router would be capable of at least 802.11ac 2x2 1.73Gbps 5GHz, and that's where it gets complicated. There's two ways to reach 1.73Gbps: 2x2 streams in a 160MHz channel, or 4x4 streams in a 80MHz channel. Guess what most do? To make things more fun, some kit advertises 1.3Gbps which looks like a good compromise until you dig further into the specs and realise that's a 3x3 stream solution and so can only do 867Mbps to a 2x2 client. But in theory such a router can split the streams across multiple clients making it not completely pointless.

To make it even more fun I also need ADSL2+ support. I basically have three options here. Option 1: buy a ADSL wifi router. Option 2: buy a non-ADSL wifi router and drop my existing router into bridge mode (option 2a: replace the existing router with a ADSL modem - which simplifies configuration). Option 3: buy a wifi access point and disable the wifi radio on the existing router (which is gigabit-capable).

Option 1 is the simplest one but also the most limiting - ADSL wifi routers have gone out of fashion with the rise of fibre and ISP-supplied routers being "good enough" for most. Option 3 seems to mostly contain range extenders and commercial kit, so option 2 is the most likely path for me to take. I might pickup a standalone modem anyway depending on how well the old router handles being a bridge and what the total cost works out as.

There's a certain amusement in how my networking setup is going full circle, from separate modem/router/wifi to an all-in-one box and back to separate devices...

Anyway, overly-technical ramble aside an AC1200-class ("802.11ac, 2x2 streams, 300Mbps 2.4GHz and 867Mbps 5GHz") or better is probably a starting point, as it looks like true 160MHz-channel kit is hard to find (or at least hard to determine through the marketing buzzwords). Probably another Netgear box, as they've generally proven reliable and I know how to puzzle through the configuration on them.


And once I've decided on what to get, next on the list is the NAS, then a media centre experiment, and finally Nyx is long overdue an overhaul. It has occurred to me that I'm spending a fair bit on computing at the moment, but to put in perspective this is like a decade's worth of major upgrades all happening at once (the router dates to 2013, the NAS to probably 2012, Nyx was first commissioned in 2007, and the original laptop was bought way back in 2005 for university!).
torkell: (Default)
Today's puzzle is "why is my phone not connecting over USB 3"? Is it:

a) the USB 3 card is sulking and needs a firmware update
b) the drivers for the USB 3 card are out-of-date
c) the USB C socket on the phone is full of fluff
d) the dock is only wired for USB 2

Or perhaps:

e) all of the above?
torkell: (Default)
Warning: very techy post ahead! This is mainly as a reminder to myself, because I can never remember how DIMMs should be laid out and the docs never explain it well.


ASUS P5K-E DDR2 memory channels )
torkell: (Default)
At work we're thinking of using C++ on an upcoming embedded project (historically our embedded stuff has been in C). As it happened while we were discussing this a colleague found a heavily-discounted training day on Embedded C++, so a few of us went along to it.

The course itself was a mix of going over existing (for me) ground like object-orientated programming (though for one of our devs that was all new to him) combined with interesting new tidbits (I hadn't realised just how much was in the C++ standard library for functional programming). It looks like the course was pitched as a taster session with the aim of getting attendees to come along to a full 5-day course. Overall I think I wasn't quite the target audience, though I still found it useful.

More importantly though is the training swag that we all got...



There's the usual mix of marketing bumpf and cheap pens, along with printouts and a USB stick of the course material, and a bag of gummy bears. But the real prize here is the dev board (a Renesas TB-S1JA) - we all got given one to use for the course and to keep!

torkell: (Default)
Y'know, there is a wonderful side-effect of all the mass panic over GDPR. Whenever I visit a website only to have a full-screen GDPR consent window pop up, I know that the site's unlikely to actually be useful and so to not bother with it. Especially when there's no obvious "opt-out" button and instead the site presents you with a list of a bajillion different categories and cookies to individually deselect.

This brought to you by searching for recipes and finding that most sites contain more ads than recipe ingredients. So I gave up on trying to find new sites and just stuck with the BBC Food site. Who'd have thought that not stuffing every page with obnoxious ads might actually gain you more users?
torkell: (Default)
I had some files (the photos in the previous post) that I wanted to transfer from my phone to my PC. One would have thought that in 2018 this would be a simple task...


Bluetooth: nope. Transfers would start, but then fail partway through for no apparent reason.

Direct USB connection: nope. One USB port threw a fit over excessive power draw. The other port worked and the phone appeared in My Computer, but never managed to open the folder with the photos (some driver layer either objected to the number of photos or just took far too long to list them all).

USB memory stick: mostly nope. The photo album has no way to directly send a photo to the memory stick, and while I could have probably found the photo and copied it myself in the file manager it would be hard to find the right photo.

Copy to network share: is that even a thing on Android? Again, suffers from there being no "send to network share" option in the photo album.


Fine, so I'll give up on a local file transfer and pick something cloud-based. Because of course the best way to copy a file between two devices in the same room is to bounce it off a server in America.


Google Keep: nope. The note appeared online but the photo only showed up inside the phone app.

Google Docs: extra special nope. The online view had a partially-uploaded photo.

Email: success! Sigh.


xkcd 949

Every time you email a file to yourself so you can pull it up on your friend's laptop, Tim Berners-Lee sheds a single tear.
torkell: (Default)
> Inventory
You have:
* Web browser
* Credit card

> Look
You have a web browser with a blank address bar and a slew of possible destinations.


> Go to Google Play Store
You are standing in the Google Play Store.

> Buy app
Certainly! Which phone do you want to send it to?

> Send to friend
That command is not supported.

> Huh?
You can only buy apps for yourself.

> Leave store
You have a web browser with a blank address bar and a slew of possible destinations.


> Go to Steam
You are standing in the Steam Web Store.

> Buy app
For you or for a friend?

> A friend!
Certainly! Here's your list of friends - who would you like to send it to?

> *enters email address*
That command is no longer supported.

> Huh?
"The gifting process has had a bunch of friction in it for a while, and we want to make it easier for you to share the games you love with friends."

> What if they don't have a Steam account?
"Steam Gifting will now be a system of direct exchange from gift buyer to gift receiver, and we will be retiring the Gift to E-mail and Gift to Inventory options."

> Leave store
You have a web browser with a blank address bar and a slew of possible destinations.


> Go to Humble Bundle Store
You are standing in the Humble Bundle Store.

> Buy app
For you or for a friend?

> A friend!
Certainly! We'll send you an email with a special gift link that you can give to them.

> Checkout
Please have your credit card ready...

> Use credit card
Please wait.
Please wait.
Please wait.
Done!

> _
You have mail!

> Inventory
You have:
* Web browser
* Credit card
* Email (subject: Your Humble Store order is ready)

> Examine email
From: Humble Bundle <contact@humblebundle.com>
Subject: Your Humble Store order is ready
Body: Thank you for purchasing a gift from the Humble Store! Here is the unique URL for you to send to the gift's recipient...

> _
torkell: (Default)
This took a little longer to write than I was hoping for. I did at least start typing before midnight...

While chatting with [livejournal.com profile] elemnar earlier we ended up discussing P versus NP (not quite sure how we ended up on that topic), and she came up with a surprisingly good analogy for it: proving P ≠ NP is like proving that there are no teapots orbiting Mars.

In a nutshell, P versus NP is about splitting problems in Computer Science into Easy and Hard problems. Problems in class P are Easy to solve, while problems in class NP are Hard to solve. Except we don't know for certain that NP problems are Hard because no-one's managed to come up with a proof for this. The best we've got is that we've only been able to find Hard algorithms for NP problems.

Note that this is very oversimplified. Some Hard problems are quite quick to solve in practice. Some Easy problems take ages to solve. Some Hard problems can be done in an Easy way to give a "good enough" answer for most purposes. But in general, Hard problems take longer than Easy problems and the difference becomes more significant as the problem becomes larger.

The general thinking in Computer Science is that P ≠ NP, i.e. there is a class of problems that will always be inherently Hard to solve. Indeed a large chunk of modern computing relies on this assumption.

Anyway, what has this got to do with teapots and Mars? Well, how do you know there isn't a teapot orbiting Mars? There aren't any giant teapots as someone would have spotted them by now, but all that gives is an upper bound on the potential size of any teapots (similar to how we've found various algorithms for NP problems and so have an upper bound on how Hard they are). No-one's come up with a formal proof for a presence or absence of a teapot, similar to how there's no formal proof either way for P versus NP. So all we know is no-one's seen a teapot, and there probably isn't one because it all makes much more sense that way... but there could be one out there somewhere that we've just not found yet. And P = NP might be true after all.

[Poll #2074983]
torkell: (Default)
So as part of the grand performance test experiment I spotted that my PC wasn't set up as best as it could be. In particular, the RAM I've got is certified with better timings than it's actually running with. The only reason it's not using them I think is down to the particular chipset/BIOS I've got (as well as the JEDEC profiles the SPD chip also contains an EPP profile but that appears to only be understood by nForce chipsets). I'm also not convinced the RAM was properly running in dual-channel mode as CPU-Z listed it as being Dual/Asymmetric.

Moar performance testing )

Result!

Nov. 4th, 2017 10:41 pm
torkell: (Default)
So did the newer drivers help?

Even more experimenting! )

And with that, the puzzle is solved! Now to put the laptop back together (did I mention I was using the SSD from it)...
torkell: (Default)
One thing I spotted during my performance testing is using USB 3.0 caused one core to be pegged at 100% while accessing the drive. I didn't notice this with USB 2.0 or with eSATA (or when performance testing the internal SATA SSD), so I wonder if the USB 3.0 performance is CPU-limited? Time for more experimentation.

More experimentation! )

I do have newer drivers to play with for both the USB and the eSATA controllers so those are next on the list to try.
torkell: (Default)
Here's a puzzle for the geeks amongst us...

I happen to have a mSATA SSD (it's actually the primary drive for Aether) and a pile of various adapters and cables which lets me hook it up to pretty much anything. So having stuck a USB 3.0 card in Nyx I thought I'd do some speed testing, and the results were a little surprising. The test drive is a Plextor 256GB M5M mSATA with a rated sequential read performance of 540MB/s which is faster than anything Nyx can manage so it should be a good candidate for some experimenting with an old copy of HD Tune.

Let's do some experimenting )

So the puzzle is this: why is eSATA so slow?
torkell: (Default)
[livejournal.com profile] pleaseremove and I ended up discussing CPU performance, partially because he has a new shiny toy and wanted to see how well it performed. Many years ago we benchmarked our systems with CrystalMark 2004 but he's had problems getting that to work so this time round our tool of choice is PerformanceTest 9.

Now by rights, [livejournal.com profile] pleaseremove's desktop ought to flatten mine as his is a good 5 or so years more modern, but the question is by how much...

Nyx, a Core 2 Quad Q6600 with a GeForce GTX 950 )

pleaseremove's desktop, an i7 3700-K with a GeForce GTX 670 )

Hah. 1619 against 4603 - there's not much contest there, with his system knocking the stuffing out of mine on every benchmark (in particular disk - [livejournal.com profile] pleaseremove has a ludicrously fast NVMe SSD because of course he has). While his box couldn't complete the GPU tests, even the ones it did run outperform mine despite me having a much more modern graphics card. Looks like all those years of CPU improvements have actually been worth something.

pleaseremove's shiny new toy )

The only thing that lets it down is a pokey little embedded GPU, otherwise it still flattens all my systems and gives his desktop a good run for its money...

[livejournal.com profile] boggyb: Your laptop outperforms your desktop on disk. How is that even possible?
[livejournal.com profile] pleaseremove: The whole thing is utterly ridiculous

Hemera, a 2GHz Pentium M with an ATi Mobility FireGL T2: )

I really do need to upgrade Hemera one of these days, but that's for another rant on how all modern laptops are terrible except for the ones that you can't actually buy.

jFLAC woes

May. 20th, 2017 10:02 pm
torkell: (Default)
In today's instance of "it's all terrible", I'm trying to decode a bunch of FLAC audio from Java (I've got a half-baked idea for trying to determine if a sequence of files should be gapless or not by comparing the end of one with the start of the next - and no, I can't just check the original CD because these are online albums). A quick search threw up jFLAC which is a port of libflac (the reference decoder) to Java. Unfortunately there's not much documentation - well, the classes are somewhat JavaDoc'd but there's no overall "how do I use it" documentation - so I'm left puzzling through the source and the demos to try and work out how it all fits together.

The answer is, not well.

FLAC files start with a bunch of metadata records. jFLAC has a bunch of corresponding classes that implement the different metadata records, along with a method in FlacDecoder to read them. Now, there's several standard ways to implement polymorphic record classes but they generally involve having a superclass with an overloaded method to work out what your subclass is. Sadly the jFLAC Metadata class has no such method so I'm left doing a bunch of sequential "if (record instanceof ThisThing) {} else if (record instanceof ThatThing) {}..." tests. That's annoying but I can cope with that. Then I discover that half the metadata classes provide no way to read the values from them. Sigh.

The next puzzle is seeking. Now, what I want is the first second and the last second of a file and preferably without decoding everything inbetween. Fortunately there's a handy decode() overload that takes a pair of SeekPoint objects. Unfortunately this requires me to know the stream byte offset to seek to. Fortunately I can guess and it'll search for the next valid frame so I could do my own binary search through the stream to find the frame I want. I then just have to handle potentially decoding multiple frames and joining them together, trimming off unwanted leading/trailing data to get the audio samples I want (and recombining bytes into samples and de-interleaving the audio, because jFLAC just gives me a stream of bytes rather than samples...).

I'm seriously tempted to just write my own FLAC decoder...

May 2025

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 8th, 2025 07:51 am
Powered by Dreamwidth Studios