I have a few public calendars at work that we use to show events taking place in various departments. I am creating a digital sign for one of our buildings and I'd like to be able to grab the events for the current day and display them on the digital sign. I'm most familiar with ruby right now, so I'm writing a ruby script to do this.
The first thing is I need to install the ruby google-api-client.
$ gem install google-api-client
Since all of the calendar data that I want to grab is on public calendars, I can use an API key to get all this data. Instructions for generating an API key are here: https://support.google.com/cloud/answer/6158862. You also need the calendarid for the calendars you want to grab data from.
In order to see if I have things set up correctly, the following script will grab all the entries from the calendar specified by the calendarid.
With the key working correctly, how can I limit the results to just a single day? And only see the fields that I'm interested in? For us, these are the summary, description, start date_time and location.
I love the fact that I still have so much to learn. I was thinking that I should set things up so that root can ssh in to a computer but only if they have keys set up. One very quick google search and I had my answer.
As noted, with the new year, I'm starting to use my new MacBook Pro full-time. Last night, it took a few hours to copy everything from my old backup to this new laptop. Did it work perfectly, of course not. Plus, I don't like copying everything from my old laptop to my new one. There is a lot of stuff that I could throw away, but it takes time to go through it all. So I copied just my old home directory, but not the Applications directory. I know there's lots of stuff that won't run or that should be updated, so I installed all that stuff manually.
Anyway, here's the info about my new laptop.
So it's not a current laptop. I bought it off the clearance section because I wanted a laptop that still had usb connections. The idea of carrying a bunch of dongles to plug stuff into a usb-c connection fills me with dread. I'll still have to do that for my network connection, but I do have usb and can still use my old chargers with an adapter. That's good because I didn't want to have to buy an extra one so that I could have one at home and work. I also bought a new 1tb hard drive and installed that myself. I couldn't customize the laptop because I bought it in the clearance section, so it came with a 128mb drive, which is laughable. It also comes only with 8gb of ram and I can't upgrade that. That's sad because my old laptop had 16gb of ram and I wanted one with even more, but Apple has decided that we don't need that much ram.
In my mind, I'm hoping this laptop takes me through retirement. And if that's the case, this will perhaps be my last mac. I'm not liking the direction that their hardware is taking and if I don't have to support macs at work, I really won't need one. I'd be fine with a linux laptop.
Took me a while, but my point of this post is to note that I'm moving from a 15-inch laptop to a 13-inch laptop. Yes, this new laptop is much lighter than my old one. But the screen feels really small as well. One place where I really notice it is in my calendar. The cells are all much smaller so that I can't see all my events. This may change how I use it. Now, I put lots of notes and reminders in my calendar. But if I can only view two or three events, I may stop putting items there. I'm already noticing that I don't really pay attention to the line that says 2 more... or 3 more..., meaning if I don't see them in the monthly view, it's like they're not there.
Another spot where I've noticed the smaller screen is in watching nhl games. It's changed the arrangement of how things are laid out. I'll probably get used to it, but my immediate reaction of course is that I don't like it. Oh well, change is inevitable.
My last post talked about using xcopy to copy a bunch of files from one server to another. I had been running this for a day, but a couple of times the command failed with the error "Insufficient Memory". Since my new server has four times as much memory and three or four times as much disk space, I didn't think that error was actually true. A quick google search shows that this message usually comes up when filenames are over 255 characters long, which was going to be a problem for me. Instead, robocopy (robust copy) should be used. The command I'm now trying is:
robocopy U:\ F:\data /MIR /Z /XA:H /W:10
/MIR = specifies that robocopy should mirror the source directory and the destination directory. Beware that this may delete files at the destination
/Z = ensures robocopy can resume the transfer of a large file in mid-file instead of restarting
/XA:H = makes robocopy ignore hidden files, which is usually system stuff that we don't care about
/W:10 = reduces the wait time between failures to 10 seconds instead of the 30 second default
There's also one very large directory with software that I've downloaded that I don't want to copy. I can always just redownload it, so no sense in taking up space on my backup drive. So the command that I'm finally using is:
I'm installing a new Windows 10 computer in our office to replace the old Windows XP one. All this computer is going to do is host our shared windows disk. Not a lot of people use this disk, but it's really good for sharing files or if a student is going to work at different computers in the lab.
I have about 1tb of data on the old XP computer that I want to copy to the new Windows 10 computer. And I'd like to keep permissions, ownership, etc. of all the files. I googled around and found that xcopy is the command that I want. Specifically, something like this:
xcopy s:\sw f:\sw /O /X /E /H /K
I started windows powershell and tried to run this as me, since my account is a domain administrator. That didn't work. I always got access denied errors. So I tried to start powershell as administrator. Here, I couldn't "see" the s: drive, which was a mapped drive. I even tried logging in as a local computer account and then manually mounting the s: drive. Powershell would not see the drive mounted that way.
The solution was to login with my local administrator account. Then start windows powershell as administrator. The in powershell, run net use s: \\XPcomputer\sw, where I'd be prompted for my login credentials on our samba/ldap domain. Then, I could run:
xcopy s:\* f:\sw /O /X /E /H /K
What I found interesting is that after I did the net use command, I couldn't see the S: drive if I went to "This PC" even though it was currently copying from the S: drive. The screenshot below shows this. I found this weird. This may also have been true in earlier versions of windows, but I had never come across this before.
I had recently installed windows 10 on one of our computers at work. I was able to successfully add it to the domain, but then none of my users could login. The error message was:
We can't sign you in with this credential because your domain isn't available. Make sure your device is
connected to your organization's network and try again. If you previously signed in on this device with
another credential, you can sign in with that credential.
This error message contains pretty much no information about the problem. The domain is/was available, as I was able to join it. After some looking around, I found that the problem is I missed a setting in my smb.conf file on my samba server. I needed to add this line for windows 10 computers:
server max protocol = NT1
Restart samba and things worked fine.
Note, this page gives you all the required settings for samba domains. Since I have been using the same smb.conf file for years, I didn't have the line needed because it's a more recent addition.
We had some students who took a video with their phone and wanted to post it on an html page. The html code we used was:
In Chrome, this worked fine. But in Firefox, it would show like this.
When that happened, I went to Tools -> Web Developer -> Browser Console. I got a message like this:
HTTP "Content-Type" of "video/3gpp" is not supported. Load of media resource http://www.example.com/Robot.3gp failed.
This message was strange because I wasn't posting a file called Robot.3gp, but one called Robot.mp4. So on my server, I checked the file.
$ file Robot.mp4
Robot.mp4: ISO Media, MPEG v4 system, 3GPP
So whatever created this file, actually made a 3gpp file and not a legit mp4. However, I found that you can convert a 3gpp file to mp4 using ffmpeg. I renamed my Robot.mp4 file to Robot.3gp and then converted it.
At work, we use some very old programs. In one program (layout), it opens up the other program (specctra). The weird error was that the keyboard would not work in specctra if it was started from layout. If I started it by itself from the command line, it worked perfectly. I looked at the logs when it started and found a lot of warnings that looked like this:
Warning: translation table syntax error: Unknown keysym name: osfActivate
Warning: ... found while parsing ':osfActivate: ManagerParentActivate()'
Warning: String to TranslationTable conversion encountered errors
Warning: translation table syntax error: Unknown keysym name: osfBeginLine
Warning: ... found while parsing ':osfBeginLine: ManagerGadgetTraverseHome()'
Warning: String to TranslationTable conversion encountered errors
Searching for this message brought me to this page. And the directions there worked perfectly.
[~]# cd /usr/
[/usr]# mkdir -p X11R6/lib
[/usr]# cd X11R6/lib/
[lib]# ln -s /usr/share/X11 .
After I created that link, the keyboard worked fine however specctra was started.