I'm using Fedora to create Qubes installation media for a Lenovo machine per their directions here. There is some weirdness with UEFI on newer lenovos that require special accommodations in the installation LiveCD. However, the Fedora Media Writer automatically creates a home partition that is only 1.7 GB, which is not enough space to download/store the ISO for Qubes (~4.3 GB). It looks like Qubes ISO needs to be on the same partition in order to create the media. How do I either (1) resize this partition so I can actually place the Qubes ISO on it or (2) give myself enough space in the first place to actually place the ISO on the drive? I have no idea how to resize partitions on LiveCDs as I don't understand their partition structure.
I got around this by:
downloading the Qubes ISO file onto a second flash drive
creating a ramdisk in the Fedora LiveCD and copying the ISO there
unmounting the second flash drive
and then writing Qubes onto the flash drive as a live CD per the directions in the linked article above.
Not ideal but better than using parted on a liveCD. If anyone else gets stuck, I can provide more detailed directions.
Related
Is windows store(windows 10) allow only delta update or we can update in some other way?If we have an app in windows store(windows 10) and I downloaded it in my machine.After some time update is available for that app and i have updated the app.Now, I want to verify weather it follow delta update or it replaces the entire application with the new one. How can i verify it?
Is windows store(windows 10) allow only delta update or we can update
in some other way?
You can select Generate app bundle always or if needed when creating app packages to implement delta update. App bundle uses a different manifest to contain the resources packages. Thus with app bundle, users only download the relevant files, rather than all possible resources, especially when your app includes language-specific assets.
To make users download the whole package, you can choose Generate app bundle never. But please note once your app is published as appxbundle, you cannot go back to non-appxbundle format. This time you can try method in this article to ensure your resources will surely be installed on the users' devices, which is for Windows 8.1 but still works to UWP app.
And since the version 1607, we can use the API in Windows.Services.Store to programmatically check for package updates for the current app, download and installed the updated packages.
Now, I want to verify weather it follow delta update or it replaces
the entire application with the new one. How can i verify it?
Firstly, your package need to contain the language-specific assets or a variety of image-scale assets, making sure to include the language not supported by your device or image-scale not equipped with your device. You need to generate an app bundle while creating package. After downloading the update, you can check if your local package contains the resource package not needed.
Apart from choosing the right languages, image sizes from the App Bundle as mentioned by Mattew Wu, UWP supports delta updates (or differential updates) automatically. Check out more in this blog post in MSDN blogs.
A "AppxBlockMap.xml" is automatically created at the time of packaging, which is
an XML document that contains a two dimensional list of information about files in the package. The first dimension lays out high level details on the file (e.g. name and size) and the second dimension provides SHA2-256 hash representations of each 64KB slice of that file (aka the “block”).
So, the Store update compares this file from both the packages and downloads only the required parts.
I don't think you will be able to check the size of the delta package that will be downloaded, but there are a few methods that you can follow to make sure that your app supports delta updates
Keep files in the package small – doing this will ensure that if a change is needed that would impact the full file, the update would still be small.
Modifications to files should be additive if possible – additive changes will ensure that end-user devices only download those changed blocks.
Modifications to files should be contained to 64KB blocks if possible – if your app does have large files and requires changes to the middle of a file, containing changes to a set of blocks will go a long way
Refer the aforementioned blog post for more detailed explanation.
I've an embedded system which runs firmware and has USB mass storage with size 79kB. So when you plug in the device to any computer(MAC/Windows), it pops as a 79kB flash drive. The firmware creates files which has transaction records. The objective is to display these transactions (tables and simple graphs) to the user. I've narrowed down to a web browser. So the user (with MAC/Windows PC) can plug in the USB device mass storage and open an HTML file in the mass storage drive and view all the transactions in the form of tables and simple bar graphs. The tricky part comes here: the device(firmware) needs to update it's clock, and this time input has to be sourced from the MAC/Windows PC. How can this be achieved?
This is the minimum requirement. Further, through the web browser the user wants to write some configuration parameters for e.g. through a text box and a submit button in the HTML page.
NOTE: Here the device has USB mass storage type and the web browser approach were selected so that there is no prerequisites for the user.
Please suggest an alternative if this can be done using another approach for e.g. a different class of USB or some other application locally available on MAC/Windows desktop/laptop. For e.g. the application should run on both on Mac and Windows i.e. the code should be the same but can be built into separate packages one for Mac and the other (.exe) for Windows. Please suggest a platform for this that has same source but can be built for both mac and windows. Thanks!
As far as I know, there is no way a web browser could write to a file. If such a thing was possible, it would be a huge security issue.
You have to write a piece of native software to do all the tasks you name. That can be done in pretty much any programming language, and if you're developing embedded systems I reckon you must have some experience in programming.
I'm looking at doing something similar and have an idea, though you may be better equipped to run with it than I am. Have the define contain a directory called "SET_DATE" with files "YEAR15" through "YEAR99", "MON01" through "MON12", "DATE01" through "DATE31", "H00" through "H23", "M00" through "M59", "S00" through "S59", and "SET"; each such file should start at a different sector, though none of the sectors in question need to contain any data (they need not physically be stored anywhere). To set the date to July 4, 2020 at 12:34:56pm, read the following files in sequence:
SET_DATE/YEAR20
SET_DATE/MONTH07
SET_DATE/DATE04
SET_DATE/H12
SET_DATE/M34
SET_DATE/S56
SET_DATE/SET
The last access should cause the unit to set its clock. If a user might want to set the clock more than once, that could be accommodated by either having a bunch of essentially-identical directories under SET_DATE (so setting the date the first time would use SET_DATE/00/YEAR20, the second time SET_DATE/01/YEAR20, etc.) and/or having the drive unmount/remount itself if necessary to clear out any caching.
I would think it unwise to have directory fetches trigger actions, since Windows or an anti-virus tool might decide to pre-cache all the directories in a drive when it is mounted. I would not expect Windows or a browser to eagerly load files, however, so I would think one could have read accesses trigger actions.
Adding BackgroundTransferRequest's to the BackgroundTransferService once the app is in the background is successful, but the new requests don't actually run until the app comes back to the foreground. Not so great for my scenario of downloading lots of small files that may take a fair amount of time to complete.
I imagine Microsoft has probably implemented this behavior by design(?), but does anyone know a way around this or an alternative approach?
A bit of background to the problem:
I'm developing a Windows Phone 8 map app that allows sections of maps to be downloaded and cached for offline use. This process can lead to 1,000's of map tiles needing to be downloaded.
I've created a process that spawns the full limit of 25 BackgroundTransferRequest's, then adds more to the BackgroundTransferService as requests complete. This all works fine until the app actually goes in to the background.
I have considered doing some web server side processing to allow tiles to be bundled in to a zip and downloaded as a single request, but this is extra complication and will result in twice the space being required on the phone to complete the download and then extract the files before deleting the original package. But, ideally I'd like to find a way to force new BackgroundTransferRequest's to start running in the background.
It's not clear what your actual question is but I'd definitely recommend bundling them into a zip file and then downloading that. It's almost always easier to work with a single file than thousands.
If disk space is really a genuine issue (not just a theoretical one - I've put thousands of map tiles in under 20mb before, but it will depend on image complexity & quality) then you could make a few zip files. then you'd avoid the BTR issue and not take up as much disk space (even temporarily).
I would like to change the Packages directory location or add a new one (to be on network drive.)
I can't use the symlink.
I had a look on the plugins, but can't find.
I am on Windows Vista, Windows 8 (soon.)
Thank you for your help.
Christophe
If a moderator could please turn this post into a comment, because it is only a potential workaround to the issue (rather than a complete solution).
Using an OSX operating system, I am automatically backing-up (to Dropbox with a symlink) the entire SublimeText2 folder and subfolders within the application support directory. Inasmuch as Dropbox works on different platforms, perhaps this will give the original poster some ideas to have multiple computers using the same Packages data. I am successfully using this method to automatically synchronize all three (3) of my computers -- i.e., if anything changes on one computer in the Packages directory or subdirectories, then all computers are automatically synchronized.
Of course, back up your data on each computer before trying out this method.
I am writing a PhoneGap application to work on Android initially.
I am writing it to collect images from the camera and store them in the database (a SQLite database using the HTML5 functionality for databases).
So there are two options, store the images in the database, and store the images on the SD card and reference them by filename.
So storing them on the SD card, how can I stop someone deleting them? I can't right, I mean they could remove the SD card too.
Storing them in the database, the HTML5 spec suggests that databases shouldn't be bigger than 5 MB, and if they are then the user will be asked if they want to increase the size. But perhaps this is not really an issue for a PhoneGap app?
My recommendation is to store the images as files on the file system. After you take the picture it will be on the SD Card but then you use the File API to move the images to /data/data/{app package name}. That directory is protected and the user is very unlikely to delete the files in that sandbox. It also has the added bonus that when your application is uninstalled that the directory is cleaned up.
This will get you around a host of issues with taking a picture and returning Base64 data. On a lot of phones the camera is so good that the base64 encoded string causes an out of memory error so I tell people to avoid the DATA_URL option whenever then can. Plus, now you store a lot less data in your DB and won't run into size limits quite so easily.