You are not logged in.
Hello Arch Community,
I'm a long time lurker. I've used Arch off and on for several years, with the occasional temporary switching to Ubuntu or Windows (depending on school requirements). Windows 7 is my current setup. I'm looking to transition back to the world of Linux. I'm trying to work something out in my brain before I switch back. I know this can be a touchy subject in the Linux community, and I'm not trying to stir up trouble. I'm just curious about the reasons behind the stances people take. I'm referring to the debate over free software purity. Those who take the Stallman side are welcome to respond, but I am quite familiar with the positions of that side. They're easy to find on the internet. What I'm really interested in hearing are the opinions of those who have no problem with using closed source software or binary blobs. Why do you have no problem using them? Are you concerned about backdoors? Please note that I have not yet formed an opinion on this matter. I'm trying to come to some sort of conclusion.
Last edited by Captain Archer (2015-10-20 13:06:21)
"Amber" - Core 2 Quad (2.66 GHz)
GIGABYTE GA-EP45-UD3P Mobo
4 GB DDR2 RAM
nVidia GeForce 9800 GT (1 GB GDDR3 VRAM)
Offline
My personal view is mostly pragmatic .
binary blobs :
if you avoid things like linux-firmware,you miss out on a lot of functionality.
closed source :
what do they provide open source alternatives doesn't ? can i miss that functionality ?
backdoors :
somewhat concerned, but open source can also have backdoors (to me a bug that allows unwanted behaviour is functionally equivalent to an intentional backdoor).
Best way to deal with backdoors imo is to minimize the chance it does damage.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
It's an uphill battle, e.g. in college half the applications you (have to) use are proprietary ...
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
I have no problem as I believe that everyone is not out to get you. There are times where I am careful in what I use etc but for the most part it is ok. Of course there can be things like backdoors in closed software. There are even backdoors in open software too. This shouldn't be limited to software either. Did you manufacture your PC yourself? The motherboard? The processor? How do you know if there are no backdoors in your hardware? You are trusting the manufacturer that they don't. The only real way to make sure is not to use any technology at all. Even then you are still exposed. You could go live in the woods. There are still satellites which can see you
Offline
I have no problem as I believe that everyone is not out to get you. There are times where I am careful in what I use etc but for the most part it is ok. Of course there can be things like backdoors in closed software. There are even backdoors in open software too. This shouldn't be limited to software either. Did you manufacture your PC yourself? The motherboard? The processor? How do you know if there are no backdoors in your hardware? You are trusting the manufacturer that they don't. The only real way to make sure is not to use any technology at all. Even then you are still exposed. You could go live in the woods. There are still satellites which can see you
I keep seeing this "argument" derailing sensible discussions - worry about backdoors, and you should "go live in the woods". Should I go live in the woods because I worry on Intel AMT, broken rootkits on Lenovo laptops, Flash with more severe vulnerabilities than the rest of my system combined, and all the like?
Last edited by Alad (2015-10-20 13:18:31)
Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby
Offline
I find it odd that the RMS fans take such a hard line against binary firmware blobs when they are loaded by the OS, but not when they are loaded from a chip on the device in question. Makes the whole discussion somewhat laughable IMO. If you're going to trust the company enough to run their hardware, that should be the end of the discussion.
Online
I find it odd that the RMS fans take such a hard line against binary firmware blobs when they are loaded by the OS, but not when they are loaded from a chip on the device in question. Makes the whole discussion somewhat laughable IMO. If you're going to trust the company enough to run their hardware, that should be the end of the discussion.
Very valid point.
"Amber" - Core 2 Quad (2.66 GHz)
GIGABYTE GA-EP45-UD3P Mobo
4 GB DDR2 RAM
nVidia GeForce 9800 GT (1 GB GDDR3 VRAM)
Offline
I have a Windows dualboot which I use only for games and a bit of Office if I have to (LO does the job almost every time these days though). And I run some closed-source games on my Arch system.
I like to avoid closed source software because sadly there are more than enough real-life examples of closed source software intentionally screwing people over (something with companies and power). I especially avoid closed source freeware for that reason, like Flash, which I only use on Windows where it can't do much harm, or Chrome. I used to run Flash on my "clean" system in the past too but since it's become practically unnecessary for me (HTML5 video) I don't use it anymore.
So yeah, if it's easy to find a FOSS alternative I go for that, but if it's too much of a pain to live without I just deal with it. I can mostly relate to the FOSS principles, but I interpret them as ideals, not as rules. That doesn't mean I'm not concerned about the dangers of closed source software (vendor lock-in, spyware, scamware and whatnot) though. I just have a life to live too ^^
Offline
While I agree with the principles of FOSS, I am in college and I also game, so for practical purposes I have to used closed sourced software. While I intend to use FOSS as much as I can professionally, the most popular systems to develop for have their own closed sourced development tools that are the only official way to develop software for their platforms, so I am again in a position where I have to place practicality over principle. Furthermore, I will always take the lesser of two "evils": I use chrome to mitigate the need to have Flash installed. So while I have come to love FOSS software, I do recognize that there are times I have to use closed source, and then I only use closed sourced software from well known/respected vendors.
Offline
I used the gNewSense operating system, which is approved by the Free Software Foundation, for over a year. It was a great experience. Free software (as opposed to open source software) is about morality. Here is why I'm an advocate for free software:
In the history of the world, there has never (and I mean never) been ANYTHING like software. And it's only been around for a few decades now. Because of computers, people have mind-blowing power by using software to perform god-like tasks, all at their fingertips. And because of the nature of it all, an infinite number of exact copies of the software (and pictures and music and movies) can be made almost instantly and at no cost.
...But...
Someone at some time decided that this wasn't OK. Rules and laws were created to prevent the copying from happening, because of reasons. And in my opinion, those reasons are morally wrong because they put an artificial limitation on software and computer data that does not benefit the greater good of society.
...While the Free Software Foundation is about morality, the Open Source Initiative is about technical superiority. In other words, free software is about doing what's right, and open source software is about using what's best. People who follow the "open source way" prefer open source software because, in general, they find it to be more secure, have fewer bugs, cost less (or have zero cost), have no advertisements, and so on, but at the same time have no problem using closed source software if it is the better tool for the job. I think most Linux users fall into this category. Both groups are great and serve important purposes in the world of software.
I find it odd that the RMS fans take such a hard line against binary firmware blobs when they are loaded by the OS, but not when they are loaded from a chip on the device in question. Makes the whole discussion somewhat laughable IMO. If you're going to trust the company enough to run their hardware, that should be the end of the discussion.
I used to be one of those people, but I eventually changed my mind because of the reasons you stated. My current belief is that using firmware blobs is not morally wrong, even though I hate that companies don't just tell us what the firmware blobs do so we can understand it, make changes, and fix bugs.
Offline
It's an uphill battle, e.g. in college half the applications you (have to) use are proprietary ...
I have seen this as a common sentiment but have never actually experienced any of it. It's true that there are a number of proprietary applications which may be used at university but I have never had anyone tell me what application I should be using on my computer to complete a project. All anyone has ever cared about is end result of my work be correct. I do use some proprietary applications when I trust them and think they are superiorly suited to my tasks, be it personally, at university or for work but have never been told that I needed to do so. Do you get professors telling you that you "have to" use MATLAB or MS Office instead of Octave or LibreOffice for example?
Last edited by TheChickenMan (2015-11-18 12:29:25)
If quantum mechanics hasn't profoundly shocked you, you haven't understood it yet.
Niels Bohr
Offline
1. If I had to restrict myself to completely open hardware, I would either not have hardware that is performant enough to do the work I want to do or pay so much money, that I'd have to do even more performance hungry work to pay the bills. I prefer to buy (more) open hardware and I am willing to pay (a bit) more, but there simply aren't enough different open components to satisfy all my needs.
2. I have recently written commercial software and the entire license clusterfuck was less than fun. I used libraries with different licenses, including GPL and Apache, as well as less open, more restricted licenses. I only sold the "private parts" and offered the (F)OSS parts as a service. I don't use any kind of copy protection and most of it is written in Python, which is hard to protect anyway. My clients are competitors to each other, so the risk that they share my software is minimal. Even if they did, the "private parts" are protected by the contract with those companies, because it is not off the shelf, but customized for every client. Long story short, I can understand, when people want to be compensated for all the hard work, especially if it was contract work on software the developers don't use themselves.
3. In theory, FOSS software is more transparent, but I must admit I don't bother to do a complete software audit on all the software I use. I use binary packages on Arch, Debian an RHEL, and considering the number of packages, a complete audit with both source code review and checking all binaries against compile time manipulation.
I find it odd that the RMS fans take such a hard line against binary firmware blobs when they are loaded by the OS, but not when they are loaded from a chip on the device in question. Makes the whole discussion somewhat laughable IMO. If you're going to trust the company enough to run their hardware, that should be the end of the discussion.
What gives you the impression, that they don't? The general stance is: Binary only is bad, proprietary is bad, locked systems are bad. It's just that we already have the second or third generation of RMS fans and most of them simply lack the necessary knowledge about the technology. All they know is how to ditch Windows and install Linux.
Offline
Scimmia wrote:I find it odd that the RMS fans take such a hard line against binary firmware blobs when they are loaded by the OS, but not when they are loaded from a chip on the device in question. Makes the whole discussion somewhat laughable IMO. If you're going to trust the company enough to run their hardware, that should be the end of the discussion.
What gives you the impression, that they don't? The general stance is: Binary only is bad, proprietary is bad, locked systems are bad. It's just that we already have the second or third generation of RMS fans and most of them simply lack the necessary knowledge about the technology. All they know is how to ditch Windows and install Linux.
This is a relatively recent campaign, as the article itself says:
"In aspects that relate to their design, those things are software; but as regards copying and modification, they may as well be hardware. The BIOS in ROM was, indeed, not a problem."
Even then, I'm not just talking about the firmware on the system board. There's firmware on many, many things. Less than there used to be, though, since companies are deciding to move it off of a burned ROM and load it from a file with the driver so that they can update it. All of the sudden, hardware that was "fine" (not "good") before is now evil.
Last edited by Scimmia (2015-11-18 15:41:03)
Online
Alad wrote:It's an uphill battle, e.g. in college half the applications you (have to) use are proprietary ...
I have seen this as a common sentiment but have never actually experienced any of it. It's true that there are a number of proprietary applications which may be used at university but I have never had anyone tell me what application I should be using on my computer to complete a project. All anyone has ever cared about is end result of my work be correct. I do use some proprietary applications when I trust them and think they are superiorly suited to my tasks, be it personally, at university or for work but have never been told that I needed to do so. Do you get professors telling you that you "have to" use MATLAB or MS Office instead of Octave or LibreOffice for example?
It's been my experience that the professor/TA will specify that the submission format has to be something specific, usually closed source because they want us to be familiar with the "industry standard". So, for example, in a class using C++ as the language of choice I can write the code in whatever software I want, but I have to submit my homework as a Visual Studio project.
Offline
Interesting. My daughters are at different universities. In both cases, the schools generally do not mandate proprietary formats. One project was kicked back and regarded as late as it was submitted in .docx format as opposed to .pdf or .rtf. The other school has students using Macs, Linux and Windows -- all about evenly split. Most written work there is done in LaTeX. Programs are submitted to a web site that runs them on a test suite. There are, of course, some things that need proprietary software -- Xilinx FPGA design tools, Solidworks, etc... She does use Matlab, but I think it is only for modeling things before implementing them in hardware/firmware/software.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Interesting. My daughters are at different universities. In both cases, the schools generally do not mandate proprietary formats. One project was kicked back and regarded as late as it was submitted in .docx format as opposed to .pdf or .rtf. The other school has students using Macs, Linux and Windows -- all about evenly split. Most written work there is done in LaTeX. Programs are submitted to a web site that runs them on a test suite. There are, of course, some things that need proprietary software -- Xilinx FPGA design tools, Solidworks, etc... She does use Matlab, but I think it is only for modeling things before implementing them in hardware/firmware/software.
That sounds about how I have experienced things as well. Most things are done in plaintext, pdf or latex. I was also just noting to someone the other day the near vacuum of windows computers. Most (nearly 70%) of people with personal laptops that I have seen are running Mac. The remaining 30% is split rather evenly with linux and windows, mostly Ubuntu. The windows users are mostly using XP. ~15+% usage isn't really that small of a minority. It does make life there easier not being "that one weird guy" running linux.
Last edited by TheChickenMan (2015-11-18 19:19:18)
If quantum mechanics hasn't profoundly shocked you, you haven't understood it yet.
Niels Bohr
Offline
I usually prefer free software when possible, but I don't think it's a big deal to also use some non-free stuff when I need to. There is philosophy and then there is reality. Sometimes I had/have to use non-free software for university projects and sometimes free alternatives simply don't provide some functionalities that I need/want.
Offline
I adopt the KISS principal. If it works, and does what I want, then I don't really care as long as I'm in control of whether it's there or not. If you don't like the blobs, don't use them, there are FOSS alternatives. Just be mindful that they may not be as functional.
Ryzen 5900X 12 core/24 thread - RTX 3090 FE 24 Gb, Asus B550-F Gaming MB, 128Gb Corsair DDR4, Cooler Master N300 chassis, 5 HD (2 NvME PCI, 4SSD) + 1 x optical.
Linux user #545703
/ is the root of all problems.
Offline
Since OP is interested mainly in opinion of people who feel fine with blobs, I'll skip this part and only refer to another subtopic that has appeared here.
I find it odd that the RMS fans take such a hard line against binary firmware blobs when they are loaded by the OS, but not when they are loaded from a chip on the device in question.
Why do you think they do? Just because someone is forced to use it, doesn't mean it's accepted.
Makes the whole discussion somewhat laughable IMO. If you're going to trust the company enough to run their hardware, that should be the end of the discussion.
You're missing two things here.
One. It's a relatively hard task to hide something in hardware. Hide both poor development practices and intentional security vulnerabilities. The first one is simply too expensive. With software you can hire a bunch of mediocre programmers, then get an experienced dev to fix their mudball until the software doesn't crash at the customer's face. With electronics, especially chips, the process consumes too much money for even bigger companies to be able to handle more than few debug-fix iterations. With "bigger" electronics you can try, but nearly always the customer will see the difference (or smell it). The second one is hard because everything is in a plain view. One may not know what a particular part of a proprietary device does, but you know… someone will start to wonder why there is a WiFi antenna mounted on RAM . Any circuit having sufficient complexity to perform any dangerous task is clearly visible even on chip level. Similarly memory cells would be a large area immedietly sticking out under examination with even low-cost magnifier. Of course there are cases when someone tries and even succeeds. Right now Russians are even using toasters and electic water boilers to attack WiFi networks; there are numerous cases of USB sticks with additional "features"; there are different ways of performing an attack (weak PRNG, broken implementation, …). Nonetheless those are just exceptions from the rule. Even if one considers hardware that can have hidden firmware, using it for the attack is much, much harder than in the case of software.
Two. It's not the producer one trusts. Of course if someone willingly allows me to examine his work and shows basic respect for me, I trust that person more than someone doing the opposite. But this is not the main factor. Who I trust is not the narrow group of individuals, but the community. If company X gives me a piece of software with the source code, it's actually worth not much more to me than a closed-source one. I can't verify it myself anyway because of its size and complexity. For that many people are needed and this is where the community comes into play. I do not trust Linux developers. They may screw me up with no problem and I can do nothing to protect myself if they try. But I can trust the community as a whole that if devs do something like that, it will be spotted. In libre community the word will also spread instead of being silenced by the managers and lawyers. Societal pressures are also stronger than in general population, which makes defection less profitable.
Last edited by mpan (2015-11-20 00:14:18)
Sometimes I seem a bit harsh — don’t get offended too easily!
Offline
One of the things about RMS that is particularly annoying is his prescience. His vision of the future has proven accurate.
That said, I see the need for binary blobs. But, binary blobs come in a few flavors. In one case, they are code that runs on a microprocessor that controls the hardware. It is not uncommon for a peripheral to have a dedicated microcontroller managing the device, and it is nice to be able to upgrade said devices by changing the blob that gets uploaded to it at run time. This is a bit of a gray area for me. It may well be that the manufacturer of that equipment has designed it so that it complies with regulations of countries in which the hardware is deployed. This might be power output of a wifi transmitter or the operating frequency of a radio. It has been demonstrated again and again that there are people out there who would gleefully disregard said regulations to make their system work a little better -- everyone else be damned. I've seen it on these forums more than I wish to contemplate. The firmware represented by the blob could well be safety critical -- such as controlling the charging parameters of a Lithium ion or Lithium polymer battery. In all of these cases, the manufacturer of the hardware bears a liability and cannot risk handing over the keys permit changes be made. In this regard, I understand why the auto industry is loath to allow people to screw with safety critical systems such as breaks, airbags, etc... It is too bad, because I would personally like to be able to fix my own car without having to beg to find the "codes" that are being thrown.
A second flavor of blob is truly hardware. As an electrical engineer, I work with devices called FPGAs. A lot. For those who do not know what these are, they are Field Programmable Gate Arrays. They are large (10s or 100's of thousands) of logic cells, each of which has a mixture of combinatorial logic and a couple registers. These logic cells are hooked together by a programmable lattice. The combinatorial logic and the interconnect lattice are all controlled by a bitstream that is uploaded to the part at power up. That bit stream tells this lump of nondescript logic how to behave. The designer synthesizes logic for adders, filters, PWM generators, UARTS, microprocessors, state machines, i2c controllers, SPI controllers, etc... using various methods to express the design. Schematics and Hardware definition languages such as VHDL or Verilog being the most common methods. The work product for the entire hardware design IS that bitstream (or binary blob) One cannot create that blob without all of those design documents. I would not expect those documents to be released any more than I would expect the schematic, bills of material, Gerber files, drill drawings or pick and place programs used to build a circuit board be released. These are the secret sauce.
Edit: Added FPGA Wikipedia link
Last edited by ewaller (2015-11-20 06:19:17)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
These are the secret sauce.
Exactly this secret sauce is a recent source of trust issues with hardware manufacturers. The hardware is a SPoD, a single point of distrust. My software can be as clever as it wants, if I cannot trust the hardware, then my data isn't private. This secrecy also keeps knowledge in the hand of a few. Free software is not just about money versus freedom, it's also about spreading knowledge without limits. As long as commercial circumstances are a valid argument against the free spread of knowledge, free software will be not more than movement. This is also the reason, why it is so easy to shun free software in some circles: The conceptual connection to socialism and communism and against a hierarchic, materialistic capitalism are obvious to even the slowest thinkers, and since communism hasn't been exactly the most well regarded and successful concept over the last hundred years, people tend to be negative, as soon as a comparison is on the table. As long as knowledge (or rather, be knowledge k, then Δk) remains the biggest piece of the dominant power structure, people will not be comfortable with sharing know how beyond certain limits.
My opinion? I don't really have one. I do not have enough information to form an acceptable opinion. Closed source systems will exists, as long as people insist on being dicks and compete with each other over everything. I know I'm not comfortable with a constantly competing society. I have no idea, how to turn a planet of pricks into enlightened cooperators. This would be a fatal reductio, so I'll try to live a life with as little collisions with my own views as possible. I have come up with the following basic guideline:
* Do not buy for the sake of buying. Especially technology should be bought with use or education in mind, not for the sake of having it. I have a lot of tech here, it started to pile up, so I stopped buying stuff I only want to have, because it's a nice toy.
* Do not buy closed systems. I have broken this rule many times, every video game console in the last few years turned out to be a walled garden. Let's see, if I can stick to that rule next time I want to play a game and cannot.
* The one year rule, that means if a piece of tech, that is meant to be used regularly, hasn't been used in over a year, then it has become useless to me. I either salvage it for spare parts, use it to build something new, give it away or sell it.
* Share knowledge with everyone you would share a nice conversation. Share as much knowledge as required to solve a problem, no more no less. This might explain my attraction to Arch and this bbs. All the knowledge I could provide is probably written somewhere, all I want to do is create context.
* Trade knowledge against knowledge. I'd gladly tell you everything I know, but unfortunately I need to participate in a competitive society, so if you want me to spend all day lecturing you, either feed, cloth and shelter me, share some of your resources for my own projects or ask me something interesting, that allows me to gain knowledge while I answer your questions. Another link to this bbs, it's hard to count all the threads I posted in, that taught me a lot while answering the questions. I had an entire year with almost zero Arch admin activities (one laptop for web browsing, no core changes), but reading and posting the Arch bbs kept by Linux skills sharp and my information up to date.
* Dispute, discuss, doubt, analyse, question and controvert everything - including your own opinions - whenever time and resources allow it.
* Do not boycott blindly and try to see the whole picture. It is easy to dislike Apple and Google for being bunches of competing capitalistic pricks with a the goal of informational world domination, but I had to notice how they regularly oppose governments (bunches of competing capitalistic pricks with the goal of world domination). Remember how we all used to debate about Sun's business behavior and then suddenly wanted it back, when Oracle showed up and crapped on the cake?
* Every rule can be overridden by case to case considerations. Apply logic as often as possible.
Offline
ewaller wrote:These are the secret sauce.
Exactly this secret sauce is a recent source of trust issues with hardware manufacturers. The hardware is a SPoD, a single point of distrust. My software can be as clever as it wants, if I cannot trust the hardware, then my data isn't private. This secrecy also keeps knowledge in the hand of a few. Free software is not just about money versus freedom, it's also about spreading knowledge without limits.
In addition to that, I am yet to see a hw manufacturer that gets this secret sauce right: usually it is simply broken, and the "secret" part makes it really hard to fix or at least ot find a workaround.
Arch Linux is more than just GNU/Linux -- it's an adventure
pkill -9 systemd
Offline
But that is the magic of being able to upload firmware at run time. In a former life, I designed an on-air automation system for television broadcast. It was all based on (no ancient) Xilinx 4K series FPGAs. We did have a problem that needed to be fixed. We had a customer live on-air in Sweden. From my desk in Southern California, my customer was able to tell me when they went to commercial. I was able, via ssh, to update their hardware during that commercial break. They, and I, were pretty dammed impressed.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
And what if that customer was not "enterprise" grade? So things don't work and she/he doesn't have a way of diagnosing the issue, even if she/he has all the technical expertise, simply because the piece of electronic in question is a black box. Moreover, a vendor actively protects this blackness. And even though there may be a firmware update on the vendor's website, how do I know that it will address the issue? (usually these updates include only vague summary of changes). There is another problem with your example: "I was able, via ssh". What if I don't want you (or Dell/HP/ASUS) ssh'ing into my boxen? Would you give me the firmware update with a complete docs, or this will compromize the secret sauce?
In summary, the ability to fix things even on-line is orthogonal and no justification to the secrecy.
Arch Linux is more than just GNU/Linux -- it's an adventure
pkill -9 systemd
Offline
I don't have any good answers for you. I am arguing both sides of the argument. I can say that I am much more willing to open source software than I am "hardware". On the other hand, there is a lot of "Open" IP out there for Verilog and VHDL. I am sure that "Copyleft" could be applied to "Hardware" that is synthesized. I do go back to my earlier statement about safety and regulation compliance. If you don't want me in your box (understandable) I should be able to ship you a binary blob that you can upload at runtime yourself. This is exactly what the Intel microcode update is. It is also (I think) what things various wifi NICs do -- although it could be code -- I'm not certain. I do firmly believe that the APIs must be open and complete. That API should be detailed to the point where one could write their own drivers for the hardware without any additional proprietary information. I am even willing to share the schematics of the printed wire board. Given that, and the API, it should be possible to create a clean room version of firmware that will do the same thing that the closed design does.
So...
Board schematics: yes.
Detailed API: yes.
Closed Blob under your control: yes.
Design documents to create blob: No. Especially where I have any legal liability.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline