Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Wednesday, December 23, 2020

Arch GNU/Linux and OpenBSD on mac mini 2018, 2019, 2020(Intel processors)

     The laptop is not an ideal computer when you are sitting at the same desk and especially when you are at home. At home, the best computer would be a desktop. For the past 5 - 10 years I have been using laptop at home, but desktops at work. I observed that I have been killing the battery. I have my laptop always connected to the power supply and that is not good. Draining your battery just because you should drain it, though you are near to a power supply is not something which I can digest. For nearly an year used the raspberry pi 4 as a desktop and tried the frugal method of using a computer. I have been mighty happy with the direction the raspberry pi is headed. I loved what the rpi foundation is doing. It is the apple philosophy of making the hardware and software together but with freedom software ethics in place. Yes, there are still blobs being used, but the foundation is putting enough efforts to tend towards an open ecosystem of software and hardware. 

     Now, the thing with the rpi ecosystem is that you have to be abreast of the developments. If you use the bleeding edge software, you should be ready for the occasional glitches. Now, this is a problem, if you want to just start the computer and do an immediate task. Yes, if you run the debian stable, ie, the official rpi os, you are better off. But, the software is outdated for somebody who has been spoilt for using arch Gnu/Linux or Debian testing. Yes there are plenty other options for Operating systems. But, they all have something lacking. I have tried one and all. I have tried the ubuntu dev version, which I used for a long time. But, it was borked many a times during a upgrade. So, it is back to reading the forums and clearing up stuff. Plenty of experiments were carried out. I live a couple of months on the command line "only". It was very interesting and I liked the challenges that were presented. After an year, something happened and the pi 4 started acting strange. It was time to move on. The first rpi 4 had a damaged sd card slot before the usb booting came out. So, as for now, the rpi efforts are shelved.

    As is the norm for a lull after the storm, I decided to take it a little easy this time and decided to have a cheap desktop solution for my daily use at home and keep the laptop for mobile purposes. Started searching the used computer market for a sleek desktop. Plenty of Intel nuc's came along. Every single model has a lacuna on some issues. Marketing and the modelling of these systems is a total failure by Intel. The number of variants is mind boggling and utterly confusing. Searched for mini pcs from other brands like HP and Dell. Nothing interesting came up. This is the time, Apple came out with its M1 processor. I was surprised that Apple released a Mac Mini with its inhouse processor. Started knowing about the Mac mini and at the same time started looking up the used pc market. There was no way, I would be buying any device from Apple on which I cannot install GNU/Linux. I have a mac book pro 2015 which runs Arch Gnu/Linux and OpenBSD like a dream. In summary, I like apple hardware and hate their software and the lockups they try to force people to stay on macos. Until, I can install Gnu/Linux or BSDs, I dont have any gripe with apple. I love the way they make their hardware. If customization is allowed, the choices are easily laid out and of course can be very very very costly.

    Since Gnu/Linux on a mac mini M1 is still a very looooong shot, I started looking at the older versions. I liked the form factor of the mac mini. There was one more surprise, the extensibility of the mac minis. This was a complete shocker. Four thunderbolt 3 ports, two usb 3 ports, Gigabit ethernet ports, 3.5mm jack. It is like the voltage of the shocks went on increasing. Settled to buy a mac mini 2018. Waited and searched for a month and I got my hand on a "very" affordable mac mini. The build quality is excellent. The option of upgrading ram upto 64GB of DDR4 was un-believable. Postponed the upgrade for a later date. Already had a 32" LG 4k monitor, a mechanical keyboard and a M501 logitech mouse. Had an external ssd which I was using to boot up the raspberry pi. Everything just fell in place. The onboard storage is only 128GB. But I am OK with it.

    Searched the public network for installing Gnu/Linux on a mac mini. The literature is very limited. But, could put together a collection of information necessary. Infact, the installation of Gnu/Linux or a BSD on a mac mini is much simpler than that of installing windows through Bootcamp, which was a breeze when I bought the macbook pro 2015. Installation of Gnu/Linux or BSD is mighty straight forward and can be summed up as

1. Disable the secure boot and file system protection(csrutil disable) on the mac mini


2. Partition the external ssd hard drive(Dont forget to create a FAT32 partition with type set to EFI as the first partition on the external SSD, a 512MB partition will do) for Gnu/Linux and OpenBSD(I prefer OpenBSD to Freebsd just for the fact that the graphics stack is "owned" by the core devs of the project and all other security related "firsts". Again a "sensible" default) 


3. If you want to install OpenBSD do not forget to create a partition of type OpenBSD before starting the installation on any other GNU/Linux box. This will provide you and option during installation to chose that particular partition. This just makes the job easy for installing OpenBSD in multiple boot machines.


4. Download and install the refind boot manager from macos(You can install this in the macos recovery which you have entered to disable the file system protection). I just love this application. My gratitude to all the devs and users of this excellent tool.


5. Install Arch Gnu/Linux. I chose to install arco Gnu/Linux for a change and I loved the installer. Be wary of choosing other software options provided during the setup process. It struggled to download and install these. It is better to install these extra options doled out to you after the base arco install. The installation was flawless. Again dont forget to choose the EFI partition created in step two and set the boot flag. This option will be thrown to you when you select the EFI partition to be mounted as /boot/efi


6. Install OpenBSD. I love the installer. I have expressed my awe at the defaults the installer puts up. Installation process was flawless. It trumped the arco install process. Kudos to the OpenBSD team. Here again, OpenBSD expects an EFI partition on the first partition of the external SSD, which we have already met.
7. Wifi and sound through the 3.5mm jack does not work. This is the same for Arco Gnu/Linux and OpenBSD.


8. Resolved Wifi by using an USB adapter and resolved the sound issued by taking the output from my monitor.


9. At some occasions, refind is unable to boot up macos. The work around as of now is to shutdown the mini and restart. At the chime press the alt key. This will bring up the apple boot loader. If you are lucky you will see the options for choosing the apple drive and the EFI partition on the external ssd. If you are unlucky, you will definitely get to boot the macos partition. To boot the FLOSS operating systems, just reboot and you will be presented with the refind menu.


10. Dont forget to enable the file system protection again by entering the recovery menu(csrutil enable).


11. Arch Gnu/Linux and OpenBSD run flawlessly and the availability of 4 thunderbolt 3 ports is freaking amazing.


12. The form factor is just perfect for putting it in a compartment in my table without clogging the surface of the table for space. Resulting in one of the neatest desks I have maintained.


PS: All of a sudden, my arch gnu/linux installation was not detecting the Ethernet connection. Ran 

lspci

After searching the public network for the Ethernet hardware detected, tried

# modprobe tg3

reboot, and Ethernet started working.

Thursday, June 4, 2020

Long live the freedom software movement

There have been many examples of organizations taking up GPLd code and trying to spin a business model around it(Let us call it organization A). The catch here is that the code is available in the public under GPL. If an individual or another corporation(Let us call it organization B) sees that the offering is costly and the terms offered are too stifling they still have the access to the same code. Let us say that that A has now sweetened the deal with improvements and additions to the code base and offers that as the premium to B. Now, B has the option of taking the improved deal form A or asking for A to give out the improvements to the original code base since the original code base was GPLd. This is where A loses its head. This is where A drops its towel. This is where many organizations understand that it is not a viable model.

But there have been examples of organizations making money out of GPLd software. The important ones coming to the mind is Redhat and Suse. At a time when even redhat didnt have a commercial offering, suse had only the commercial offering. All these people started working "around" GPLd software. They did not work much "on" the GPLd software. Whatever utilities they developed to wrap around the GPLd software making the users adopt GPLd software was aimed with ease of use and technical support and customization for the clients. This worked and companies were successful with this. The object of business is profit maximization. There are plenty of strategies to do it. The problems while doing business with GPLd software is the ethical dilemmas. You want to be true to the GNU philosophy and you have to maximize shareholders profits. As you start wanting more returns from GPLd software that is where you start spiraling down. That is where you are extracting blood instead of milk from the cow's udder. Now, the money you are making is blood money.

Now comes a biggie who thinks that he knows how to make more money from GPLd software and buys the smaller and a better ethical vendor. Without even having a plan to integrate the ethics and the working of this company. The integration plan is one of the most vital thing for a successful takeover. You decide whether you want the smaller firm to continue with its ethics or completely break it down and merge with your profit making culture. There is no road in between. Many mergers and acquisitions have failed because of this. For big corporations it is better you kill it totally like google or microsoft. Take out whatever assets that can be proprietarized and throw out the GPLd ones. The problem arises when you think of proprietarizing GPLd code. There might be plenty of code written by the acquired company under GPL. But just because you wrote it, you dont own it. It is in the GNU world.

Efforts are on to kill the free software movement. Efforts are on to destroy the free software foundation. Efforts are on to kill the GPL. And this time it is a totally co-ordinated effort from all the bigs. We dont know how it is going to end. But we know for sure that the GPL document has stood its test of time. It has been framed with the core human societal values at its core. It has not been framed for profiteering. It has been framed with the basic human ethic of "sharing". They all thought that they bring down RMS they bring down GPL. They are wrong. They should have done it the other way round, then it might have worked. But, now it is not working. People are sratching their heads. All their lawyers and PRs are working overtime to malign the GPL.

So, clearly now is the time to advertise freedom software. Now is the time for all the individuals and ethical groups to spread the word of freedom software. Now is the time to share. Now is the time to side with the free software foundation and identify the blobs in the free software foundation and replace them with GPLd code since we have already lost the Linux foundation for the blobs. Now is the time to start GPLd software. Yes they are not flashy, Yes they are not easy to use. Now is the time to make them flashy. Make them more usable. Make them more known to the public. Now is the time to celebrate the contributions of one and all made to the freedom software world. Now is the time to provide due recognition to all the developers who work both for earning and for human ethics. Now is the time to spread the names across the public network. Now is the time to dig out the the name sof the contributors on which all the proprietary world of software is standing. Now is the time to tell that Macos and ios are visual shells on BSD code. Now is the time to shout that the flashy PS4s are just an interface to the awesome BSD code. Above all now is the time I request all developers developing for fun for serious ethics to please release their code under GPL and not under any other permissive licenses.

As a long time GPLd software user, I salute all the freedom software developers and thank them from the bottom of my heart for providing the world an ethical alternative.

Long live GPL. Long live RMS. Long live the sharing ethos.

Sunday, May 31, 2020

Work from home is the need of the hour

The present pandemic in the world has bought to the fore a prime mistake in the industry. The mentality of the present industry is a carry over from the industrial revolution. The entire work force has to be brought into a walled fortress and hold them for a minimum number of hours under a different setup and set of laws different from the societal setup. The precursor to the industrial revolution was the cottage industry. Every society had its equilibrium by specialists doing what they do best and continue to do so for centuries. Majority of the cottage industry were highly skilled and carefully guarded secrets. Very rarely did finished goods cross the local society. Every society had its dress code based on the raw material and the ability of the tailor in the locality. Majority of the procedures were available in the house of the creator.

Now it is all about nationwide/global markets. Highly skilled jobs have been broken down to easily assimilated steps which can be done by anybody. There are not much crafts which can be called a secret in the present scenario. All the goods created so were physical in nature. It made sense to create the most economical process flow to minimize the costs. This industry also gave birth to the service industry which are truly global. But still there are mom and dad service centers who cater to the last mile.

The one industry which blindly followed the strategies of the physical industry is the software industry. The work content are poles apart. The software industry does not need to collect all the contributors under one concrete building. The industry works on collaboration and there have been many tools available for collaboration through the public network. The industry also employs a considerable number of people and the earnings are also supposed to be good. This industry contributes most to the usage of roads/vehicles since this industry works three shifts. There are not many physical industries which can run all the three shifts with the same efficiency. Code written at home or at desk are no different. In fact, the disturbances of the open office or the cramping of the closed ones dont augur well for the motivation of the contributors.

It is now high time the industry and the government wakes up and stops this movement of the work force. The software and the call center/remote service industry have to start working from home. This will reduce the load on the roads and the infrastructure can be utilized for other purposes. This would also result in stabilizing the real estate prices. This would also stop investment in projects like we-work. This can be utilized in improving the public network backbone. This sort of work culture can employ well deserving remote employees who cant come down to the cities for a job. This would in turn provide opportunity for remote workers in villages to do an evening/night job combined with agriculture and other familial activities. This is perfect for the female staff to take care of their kids and their education. There are many occasions where high earning couples are not having time to contribute for their kids. Just a mere presence of the parents in the house can mean a lot for the kids. This gives an opportunity for real flexi hours based on the commitment of the parents like sending the kid for school and then collecting him back.

Motivational theories are to be re-written, Managerial roles are to be re-configured and definitely will create jobs for people to maintain the public network infrastructure. Improvements should always be welcome and learning should be continuous and inclusive. I request all the software companies to completely shift to remote working and give opportunities to the most remote locations and identify and support capable people wherever they are. The pandemic demands minimum amount of people available in the out. Make the world a better place.

Thursday, June 4, 2015

Yes, I need a smart watch


1. Battery life be a minimum of a week. Charging happens only at the weekends
2. It should always show the time irrespective of the position of my wrist. I myself see the time on others wrist if by mistake I did not take my watch along and am too lazy to draw out the phone for the same.
3. Should be dead-drop easy to operate. In any menu, a particular key click should return me to the watch face. a la home button.
4. Open API's in terms of software and programmable interfaces w.r.t hardware attachments. This will ensure the longevity of the product.
5. The watch strap should be standard as per the existing watch industry practises. This will keep this creative industry alive and allows inclusive growth.
6. The watch case design particularly the inner area housing the electronics portion should be open.
7. The electronics should be housed in a compact plastic enclosure so that it can be easily removed by removing the back case of the watch as is the existing industry practise. The only thing exposed out of the plastic enclosure will be the metallic contacts for the keys on the watch case.
8. Points 5. 6, and 7 result in ultimate customizability and will allow the existing watch companies to come out with watch cases and straps taking the look of it a completely different level. This also allows the smart watch maker to concentrate on his core ability, that is, the smartness of the watch and leaving the traditional competency of case and strap design to the established ones.
9. Point 8 is very important in bringing down the cost of the watch, which in turn is another important requirement of a smart watch.
10. The entry level watch should always cost less to allow the mass to adopt.
11. You can always have watches for the filthy rich by just embedding a few diamonds here and there.
12. It should be waterproof. My INR 400/- watch bought 15 years ago never allowed a drop of water inside.
13. The UI to be very basic and to the point. No razzmatazz. Yes, of cours the watch for the filthy rich ones can have it(They may have another 10 nos on charge all the time)
14. The software should talk to the phone at the system level. Should not be dependent on the particular app on the phone. The upgrades to the watch should be only when the OS on the phone changes, not when the app changes( I maybe wrong here. But it is a far stretched idea. Now, all programmers dont draw out your forks).
15. It should have the latest and the best connectivity stack optimized for power usage(bluetooth now).
16. Font and font size to be configurable. I like small font and more information.
17. Intensity of vibrations to be configurable
18. The handshake once established between the source device and the watch should be aggressively maintained until the physical limits are reached.
19. Smart watch makers should stop thinking about it as a small mobile and think of it as a watch first. Start from there. It should meet all the requirements of the watch first, then go on adding smartness in an iterative manner. There is definitely no hurry.
20. By opening up the hardware design the smart watch manufacturers can include the existing manufacturers thereby launching a variety of hardware shells instead of one smart watch. Just imagine the options the customer is going to get by this methodology.
21. Should it be able to recieve phone calls. No. Should it be able to reply to messages. Yes, small ones, prestored.
22. Should it do a zillian things, Yes. But the first thing it should be is, it should be a watch and show me the f*&$!*#g time.

Any smartwatch has to be first a "WATCH"