Search This Blog

Thursday, December 21, 2017

BlueTooth 2017

This is for myself to stop me reading about installing backports. ath10k modprobe something something possible blacklist conflict something.

1. Fire up Blueman.
2. Reboot, sorry.
3. If BlueTooth adapter isn't found goto 1. Repeating this multiple times is normal in 2017.
4. ps aux | grep blue
5. kill -9 ← pid of Blueman
6. Try connect everything.
7. If everything connects after multiple attempts then fine otherwise continue.
8. sudo service bluetooth restart
9. Alt-F1 blue blah, but not Blueman!
10. Right click on system tray and select "System Tray Settings..."
11. Deselect Bluetooth, click okay. Select Bluetooth, click okay.
12. Unpair, untrust, and remove problem device.
13. Try reconnect problem device.
14. Goto 12 until you lose the will to live.


I think what's happening is that only Blueman will let the driver actually boot but not function. And "Bluetooth" won't boot the driver but will actually work. lspci and rfkill list will make you think you have lost the plot.

Saturday, October 07, 2017

Tuesday, September 26, 2017

PulseAudio broken in Mint Sonya

I was running Mint Sarah and had recently upgraded to Mint Sonya and just noticed the Pulse developers decided to unnecessarily break Dolby AC3 support. Like all good Debian LTS releases, this will never be fixed by an update and you'll have to fix it yourself.

I found the solution here. Essentially just edit
/etc/pulse/daemon.conf
and uncomment
default-sample-channels
and set it to whatever is reasonable for you.

Now I can go back to watching movies and hearing sweet helicopter fly overs.

Friday, September 22, 2017

The programmer divide

Over the course of time I've seen this ever growing division between two types of computer programmers.

Firstly there is the traditional "raw" programmer. This type like to own their code and nearly always program in C, sometimes Perl or Python but nearly always C. They understand how their program will compile and are okay with the fact that their code will compile a whole lot of evil "goto" statements.

The second type is the "library" developer. This type understand that writing code that has already been written is inefficient and use layers of other code to get code written quickly and beautifully. They will adhere to concepts like DRY and closures so their code is short and readable.

With the growing amount of computing resources (growing speed and memory) the first type of programmer should of died out but hasn't for three reasons. The first and most obvious is that these programmers maintain the base code for which libraries are written on and if they stopped doing it the second type of developer wouldn't exist. Secondly they are needed for raw speed, we've all seen that now common "spinning wheel" and love it don't we? Imagine if that happened when you went to start your car? Love gaming in JavaScript? Didn't think so. The third reason is to support the "library" developers when they get too deep and stuck. When this happens it's a simple case of finding out what's going on and how to fix it. Armed with tools like wireshark and a DASM "raw" programmers can come to the rescue.

The "library" developer is in high demand as they can solve problems quickly by standing on the shoulders of giants. They understand their code must be easily readable because of the next person who may work on it. Constantly learning about new programming strategies and libraries is of the utmost importance to keep their programming skills relevant and efficient. Regular progress and multiple projects are the norm for this developer. Writing code that uses a library and is used by a library will keep them in a job like the "raw" programmers.

Another aspect is these two types of programmers don't tend to get along, even though they need to. What I've seen is this divide growing. Will it get to the point where the "library" developers don't even know what a computer is doing? Will "raw" programmers be regarded as too inefficient and relegated to only writing computer games and operating systems or has this already happened?

My own personal experience with this issue came in the form of the language JavaScript, it's the programming language used by web browsers. I started out with the opinion I should write all my own code because that's what a competent programmer should do. Almost as soon as I started Microsoft entered the game and started messing with things. In the old days I dealt with this by making different versions of web sites depending on the supposedly standardised technology being used. After a while things like jQuery came along which provides a common library to mitigate the differences and I found myself being outperformed by programmers using jQuery. I learned the advantages of jQuery and came to love and embrace it.

It's obvious now that there's an entire industry to connect these two types of developers. People that maintain tools and libraries that run in between these two types are common, Atlassian make a lot of money from doing just that. Where will it progress from here?

Monday, September 11, 2017

Marilyn

I'm currently doing some WordPress administration for my psychic tarot reader
& counsellor friend Marilyn Vaccaro. Go here if you want to make a booking, especially if you are in the Byron Bay area.

Sunday, July 30, 2017

NBN Co explained

Yay Aussies, there is now a lot of discussion about NBN Co, how terrible they are and what not, and how they are now succeeding where they should have failed. So how did this come to be? Let me break it down for you, it's all related to this thing called the Internet which is the network of all networks.

There is a lot of discussion that the NBN Co was created to increase the speed of the Internet in Australia. This is sort of correct, but there is a lot more too it. At the time that NBN Co was conceived, the Internet (version 4), had a serious problem and that issue was not related to speed, but "addresses". Each device that connects to the Internet needs an "address" which is simply a number and version 4 of the Internet allows for 4,294,967,296 addresses. Whilst 4 over billion seems like a big number, think about the number of people and computers in the world, the reality is the great firewall of China" saved the Internet from dying ten years ago.

Now obviously the IETF, the people that govern the Internet, foresaw this problem and met together to address the problem. There were enough disagreements that version 5 of the Internet was scrapped altogether but they sorted out their differences and invented a solid version 6 of the Internet. Version 6 of the Internet has 3.40282366921e+38 addresses, almost enough to WiFi enable every second piece of sand on the planet, awesome!

Now the Internet version 4 and 6 needed to coexist whilst people transitioned from the old to the new. So what happened next? Everyone, and I mean everyone, realized we'd need to replace our copper cable with fiber optic cable to get new sweet speeds of the new sweet Internet version 6. Even the people running NBN Co (or whatever it was called at the time) knew this at the time.

Replacing all the copper with fiber was going to cost a lot of money. Fiber had already rolled out, the Internet would never have began without it, all the cities and telephone exchanges were already connected by fiber. It was the many connections between the exchanges and the houses that would need their copper replaced. It was going to cost billions, and so the NBN Co go their billions.

So what did the NBN Co do with their billions? Figure out ways to pretend they spent it on infrastructure! Tasked with the simple task of laying fiber optic cable to every single house in Australia NBN Co decided that rather than do this it would try to make money from an infrastructure project that was never ever going to make money.

So how did NBN Co manage to take in billions whilst not rolling out infrastructure? By lying to the public and creating a pyramid scheme. NBN Co decided do nothing and put out contracts for other companies to "upgrade" the existing infrastructure. NBN Co is upgrading the horrible cable network from DOCSIS 3.0 to 3.1 and simply quoting laboratory tests and future undeveloped technology. Whilst they were initially honest about it, they replaced ADSL infrastructure with VDSL2+ infrastructure (ie: not fiber). Naturally they failed because VDSL doesn't work as far as ADSL so to fix this they invented FTTN (Green boxes of VDSL2+ modems you can see all over the country side). Essentially NBN Co has taken billions and changed not much, just putting VDSL2+ hardware only where it is absolutely needed where fiber should have been placed and where DOCSIS 3.1 just dies, depending on who lives one the street.

So what is the end result? DOCSIS (the cable network) never has or never will meet the expectations set to the Australian public by Senator Richard Alston, will eventually be replaced by VDSL2+. All VDSL2+ boxes will be replaced by a company (most likely from Singapore) that will envisage the Australian dream of 100MB/s+ Internet speeds.

End result? The individuals that stole billions in the NBN Co project will get to keep it. When we do get fiber to the house, as we were told we would be, we'll find we're fifty years behind Vietnam in technology.

And get this, connecting to the NBN Co in Australia is compulsory.

Tuesday, June 27, 2017

Ford EL and AU ECU location

Anyone Googling this and getting horrible results like this the answer is the passenger side kick panel. I should have guessed this because it's the same for a Nissan Skyline.

Tuesday, May 23, 2017

Find and remove duplicate files in Linux

After maintaining data for years and guessing I have terrabytes of duplicated data. I couldn't find a great solution so I made my own using fdupes.


Firstly, use eyeballs to ensure there will not be any problems:


fdupes -rnm .

If all seems well then remove the duplicates:


fdupes -rndN .

I'm sure this can be approved on. The fundamental concept here is to determine if there is going to be any problems before automatically deleting a bunch of files.




Monday, March 27, 2017

Install Google Assistant

I'm currently running a Moto G3 with Marshmallow and Google Now. My Google Now feed has been bombarded with articles about how I'm going to get Google Assistant for over five months now and as an Australian I thought it would have happened already. Despite what you may read, it isn't going to happen automatically and this article describes how to make it happen.

Firstly you should try Google Assistant via Google Allo to determine if you want it in the first place. Personally I ask AI systems "who shot first" to determine their quality. Google Assistant's comments about Chewbacca impressed me enough to make the switch.

A word of warning you won't find on the web: this process will destroy your launcher configuration and means you'll have to set up all your icons and widgets again. If you've ever moved from Lollipop to Marshmallow this is something you have become accustomed to anyway.

Are you ready to do this? Let's go!

Step 1: Make your phone American (it's only temporary). Go to settings then "Language & input".

Now change your language to English (United States).

Step 2: Kill Google. In settings go to Apps.

Now wait forever and find the "Google App".
Then go to Storage, Manage Space
And now click "Clear All Data".
Now go back to Apps and repeat the process for "Google Play services".

Step 3: Configure Google Assistant and rebuild the universe. Go back to your home screen and you should notice it has been destroyed. Swipe right to where Google Now was and it will ask to configure Google Assistant. Do this and rebuild your launcher icons and what not.

Step 4: Get the hell out of Dodge. Remember to go back to settings, "Language & input" and change your language back to English (Australia) or whatever. You'll have to keep your language as English (United States) or Google Assistant will stop working.