– How to fix Photos error while trying to open iPhoto library from external hard drive “Photos was unable to open the library” error 4302

Running Catalina 10.15.7 (19H524)

The iPhoto Library has been stored on an external hard drive. Tried opening it various times. Restarted the computer. Remounted the hard drive.

Any idea how to get it to open?

Found this thread googling – – but don’t understand the proposed solution.

enter image description here

Picture library slideshow webpart SharePoint 2019 On-Premise

I am using SharePoint 2019 On-Premise. I have created a new picture library. Add some pictures inside of it. After this, I add a picture slideshow webpart on my home page. I selected my picture library and the default view. I got this error:

This library either no longer exists or has no images in it. Please select a different library.

“Why do I got this error? I try also other views, but got the same error. I created a new view and selected it in my slideshow webpart, and got the same error.
In my virtual (VMWare server) workspace works great, but in test server environment i got described error.”

I found similar post here:
Picture library error: This library either no longer exists or has no images in it. Please select a different library
I cannot found any related information in event log.

FYI: I tried upgrade sharepoint to the newest version and not helped me…
I go step by step from this tutorial: and more others tutorials…
I just found only a small discrepancy in field preview picture(Field Internal Name= “PreviewOnForm”). This field not showing in server environment, it can be error, but I don’t know how to repair it…

photos – Can i store and access iphotos library on external hard drive (and still have it backup to my cloud network)?

Apologies for my technical ineptness. What i aim to do i store my large iphoto library on an external HDD and access it from that so it does not us my laptops more limited SSD storage. Is it possible i can set this hard drive to backup via my computer to the same local network attacked storage that my computer backs up to. If so how would this been set up?

Cheers, Ben.

media library – wp-contents/uploads folder is empty in FTP – trying to upload from Remote to Localhost

I’m trying to get a local copy of my remote site so that I can edit the site locally before publishing to the remote server.

I have transferred my site to localhost via FTP, however I do not see any images on my site. When I inspect the wp-content/uploads folder of my Remote site, it doesn’t have any Media Library files.

How do I get my media library from my remote site to appear on my localhost? I have tried using Add From Server, but I don’t see the media files within the directories shown by that plugin, either. Is this a permissions issue? I can connect to my remote site using FTP, so why can’t I access the media library?

Any help is greatly appreciated.

macos – Installing a C/C++ library with homebrew on M1 Macs

In Linux, when a C/C++ library is installed through a package manager, the C/C++ compiler on the system is immediately able to find the installed library. I haven’t used Intel Macs but this is definitely not the case in M1 Macs.

On M1 Macs, homebrew package manager installs software and libraries under /opt folder. It seems that clang that comes with XCode is not able to recognize this path so each time I compile my program against a particular library, I need to specify the library path using compiler’s appropriate flag.

Is there a way to make clang compiler in M1 Macs recognize installed C/C++ library paths by default?

c – Simple library for an undocumented archive format

I’m writing a little library for some undocumented file formats. The original program uses a path string to find files in an archive and this function tries to do the same.

The archive contains a magic string, an offset into the file list, the data in the files and the file list itself. A entry in the filelist consists of a path (256 bytes long, 0-padded) and three numbers, the second one being the offset from the archive start to the entry file. The entries are sorted alphabetically respecting case; here are some mockup paths to demonstrate the ordering:


Here are the relevant utility functions and defines. These are defined in Utils.h and Utils.c, I’ve put them here together for context.

#define BYTESZE sizeof(char)

typedef unsigned int uint;
typedef unsigned char byte;

uint readU4L(FILE* file) {
    byte buf(4);
    fread(buf, BYTESZE, 4, file);
    return buf(3) << 24 | buf(2) << 16 | buf(1) << 8 | buf(0);

Finally, here’s the “library”:

// ====== BIGfile.h
#define BIG_MAGIC_LEN 7

#define BIG_SEEK_SUCC 1
#define BIG_SEEK_FAIL 0

typedef struct BIGFile {
    char magic(BIG_MAGIC_LEN);
    uint offset;
    FILE* read;

} BIGFile;

BIGFile* load_BIGFile(char* fpath);

int seekToEntry(BIGFile* bigfile, char* path);

// ====== BIGFile.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "Utils.h"
#include "BIGFile.h"

BIGFile* load_BIGFile(char* fpath) {
    BIGFile* bigfile = malloc(sizeof(BIGFile));

    fopen_s(&(bigfile->read), fpath, "rb");

    if (!bigfile->read) {
        printf("Can't open file.n");
        return 0;

    fread(bigfile->magic, BYTESZE, BIG_MAGIC_LEN, bigfile->read);
    bigfile->offset = readU4L(bigfile->read);
    return bigfile;

int seekToEntry(BIGFile* bigfile, char* path) {

    fseek(bigfile->read, bigfile->offset, SEEK_SET);
    byte buf(256);

    int pos = 0;

    // while not EOF, read string part
    while (fread(buf, BYTESZE, 256, bigfile->read)) {
        // seek over entry data
        fseek(bigfile->read, 12, SEEK_CUR);
        // loop until given path != read path
        while (path(pos)==buf(pos)) {

            // path has ended, so buf == path
            if (!path(pos)) {

                // seek back into entry data
                fseek(bigfile->read, -8, SEEK_CUR);

                // read unsigned little endian 4-byte int
                uint res = readU4L(bigfile->read);

                // seek there and return success
                fseek(bigfile->read, res, SEEK_SET);
                //printf("found at %dn", res);
                return BIG_SEEK_SUCC;
        // path char is smaller than buf char
        // we seeked past where the entry could bem return failure
        if (path(pos)<buf(pos)) {
            return BIG_SEEK_FAIL;
    // EOF, return failure
    return BIG_SEEK_FAIL;

I’d like some feedback on general style, as well as on the seekToEntry function, perhaps this can be improved somehow? Thanks in advance!

sharepoint online – Can external users benefit from our Organization Assets Library

I created a document library to be used as organization assets library for our organization as mentioned in this link @ .. and i granted “Everyone except external” read access to the library so they can use the templates when they created word & power point files..

but my question is; if external user can also benefit from the organization asset library? for example let say i granted an external user read access on the organization assets library >> then can this external user use the templates inside the library when creating new word and power points files?


javascript – 409 ‘Conflict’ Changing ContentType property of Document Library

I have about 600 items in a document library. The library has 9 content types defined in it, which is part of a reorganization to take items out of folders and make it folderless. The library is a copy of the original, and so these files have been uploaded by a move operation. All files are of the default ‘Document’ content type standard during item creation typically by uploading.

Other than ‘Edit Properties’ one-by-one for each item, and inability to use QuickEdit to change item ‘Content Type’ field (not a Column), the one way to change rapidly is REST requests. In the about 60-70 lines of code shown below, the script does the following:

  1. It has 3 serial REST requests
  2. REST request #1 gets the names and IDs of the Content Types of the doc lib, which are then stored in an array of two-property objects
  3. REST request #2 then gets all the items of the list filtered for the default “Document” content type, which are to be changed. It selects on one column, “Level 1” (referring to a top-level folder name representing a categorization that became a content type name), and its value is to be used in doing the item Content Type field update.
  4. REST request is the “POST” request supposed to do the modification. Each item request is processed in a for loop, and I put a timeout on each request of 5 seconds to space out the requests so as not to get server errors about resources.

On the “POST” request (innermost), I am getting 409 (Conflict) response errors not on one item, but the rest of the items, and I haven’t figured out what is going on. I am looking at the request object message and it shows this

{"error":{"code":"-2130575305, Microsoft.SharePoint.SPException","message":{"lang":"en-US","value":"The file <filename> has been modified by i:0#.f|membership|<user identity> on 26 Feb 2021 07:46:30 -0800."}}}

I am also getting additional message from a function ‘findAjaxError()’ in my script library that seems to indicate success.

{"readyState":4,"responseText":"","status":204,"statusText":"No Content"}

But when I do a count of items with the ‘Document’ content type after a request to change only 50 items in a retrieved items list, it seems to have only been reduced by 1 item in count.

I am probably not setting up the headers correctly, or using correct method (not “POST”, but “PUT” or other?)

Has anyone tried this?

function dataTransformer() {
        url: "https://<server+site path>/_api/web/lists/" + 
                            "getByTitle('<doc lib name>')?$expand=ContentTypes&$select=ContentTypes/Id/StringValue,ContentTypes/Name",
        method: "GET",
        successCallback: (data) => {
            let ListContentTypes = ( ), results = data.d.ContentTypes.results, DocumentContentTypeId;

            for (let result of results) {
                if (result.Name == "Document")
                    DocumentContentTypeId = result.Id.StringValue;
                    name: result.Name,
                    id: result.Id.StringValue
                url: "https://<server+site path>/_api/web/lists/" + 
                            "getByTitle('<doc lib name>')/items?$select=Id,Level_x0020_1,File/Name" + 
                            "&$filter=ContentTypeId eq '" + DocumentContentTypeId + "'" +
                method: "GET",
                successCallback: (data) => {
                    let ctype, idx, results = data;

                    for (idx = 0; idx < results.length; idx++) {
                        console.log("count of files to be operated on: " + results.length);
                        for (ctype of ListContentTypes)
                            if ( == results(idx).Level_x0020_1)
                        console.log("modifying file '" + results(idx).File.Name + "'");
                        setTimeout(() => {
                                setDigest: true,
                                url: "https://<server+site path>/_api/web/lists/" + 
                                        "getByTitle('<doc lib name>')/items(" + results(idx).Id + ")",
                                method: "POST",
                                headers: {
                                    "X-HTTP-METHOD": "MERGE",
                                    "IF-MATCH": "*"
                                data: formatRESTBody((
                                    ("ListItemEntityTypeFullName", <list item entity type full name> ),
                                successCallback: (data, text, reqObj) => {
                                    console.log("response data => " + 
                                        JSON.stringify(data) + 
                                        "nrequestObj => " +
                                errorCallback: (reqObj) => {
                        }, 5000);
                errorCallback: (reqObj) => {
        errorCallback: (reqObj) => {