Not long ago I was tasked to make a tool to manage Moodle courses by moving them through categories, creating and cleaning them up. Now I had to make some way to “refresh” the course participants and that means unenrolling teachers and managers, assign different roles, suspending students, adding students, all that stuff.
This was going pretty good and easy until I hit upon a web service function
core_enrol_edit_user_enrolment. It’s an
External function that updates a given user enrolment, it is needed to suspend students from a course.
From the official API docs, we can see that it takes in required arguments courseid (User enrolment ID), ueid (User enrolment ID) and status (Enrolment status).
The problem here is with a ueid (User enrolment ID) argument because there’s no function that returns such an ID. At least I wasn’t able to find one easily accessible and I had to make my own web service function to get that ID.
This is a program designed for small Du/Tri-athlon sporting events (but probably more for tri-) where running and biking (and swimming?) can’t be done in the same place, so this program helps with that, and usually for swimming, the pool is not at the same place…
I did this when some guy approached me with such a problem he had when organizing these events, and the solution he was using was rather… poor (though he had no choice at the time). He was using some Excel document which looked like it was made by a mad man. You’d paste in the times and press the start button. Then Excel would freeze completely and eat up 100% CPU for no reason like wtf.
In essence how this works is, when athletes go through one section (i.e. running), the times are recorded in some time-logging program, like a spreadsheet maybe, athletes relocate to where they’ll be doing the next section (i.e. biking or swimming), recorded times are loaded into the program and the program counts down time difference and beeps when it reaches zero for each athlete.
Since the last time I wrote about this original script for license assignment in Office365 cloud there were some changes. Now there are two parts of the script, for different groups of people in the company. And had to add timezone and language assignment also. And some more debugging output too.
For the first part of the script it didn’t change much, just added a line to assign the same timezone and language for everyone and changed a filter template.
Then I added a second part of the script, this one has a bit more logic. This group needs to be assigned the same timezone but different language (for the interface). By different language I mean Lithuanian or English.
Good day y’all. What a shitty winter this year is, ain’t it? It’s nearly Christmas and there’s absolutely no snow only rain, sadness and depression.
Never the less, to keep myself occupied through this period I try to continue my own projects or make my life easier by writing up some kinda automated scripts. One of which being a MikroTik guest user generator for WebFig v6.38rc7 interface, because I hate thinking up names and random passwords…
You’d think that with version 6 of this software the developers would have made a random user generation feature of some sort and a way to print it out quickly, but nope. There might be a feature that our sysadmin needs to enable, but he can’t be bothered with such crazy tasks, so meh.
Greetings. Christmas is coming and at work we often make something funny/interesting for this period of the year. About last year you can read in a previous post here, although it wasn’t all that interesting.
This year we decided to make some kind of an interactive thing and use the arduinos that we had laying around. So the idea was like this: To make a box that had a camera and 2 push-buttons. One button would play some kinda Christmas music, another button would take a picture through the camera and upload it to our website, where we could display them all.
Yeah, it’s a bit late to post about it now… but end of 2016 is coming, and we have some new awesome things planned how we’ll decorate the office, so this post is to remember how we had decorated last year.
Nothing too fancy, we only did it at the last moment, but everyone liked the result.
We broke out some keyboards, glued their keys to a motherboard and some graphics cards. Found a lot of DDR rams and chained them up into a garland. Some PS2 mouses were painted red and hanged on the office lights.
The best thing was hanged on our door – a wreath made of DDR ram, LED strip, an Arduino motion sensor and a Piezzo buzzer.
The motion sensor would detect whenever someone was walking past our door and trigger an Arduino to play one of the two programmed Christmas melodies through the buzzer. To connect everything we used an ethernet cable. It was fun and simple.
Hello. Today I’m writing about a different version of a powershell utility script I made before for calendar synchronization. See that post for details and bottom of it for a raging update. This is a continued post from before.
That script I made before was for an Exchange server and it was working great at the time. But later we switched to Office365 and since April it became broken in a way that was making me wanna pull my hair out. However thanks to my persistence and a nudge into the right direction from some people just when I was about to give up, I was able to make that script work again, so in turn I made it as a different script and named it v2. The old one can still be found here.
This is my latest project which I, for most part, finished. Its purpose is to log everything that happens user-related in an IRC channel to a configured database. Initially this was made to be used with PISG (the irc log file parser and stats generator) on an EvilZone network (your mileage may vary) and it was for some time. But now EZ has transitioned into new era and it needed to be re-designed. So this is the final product which can be found on my github: https://github.com/kulverstukas1/EvilLogBot
This bot is very simple, it takes no user input through IRC and gives no output on IRC, ignores all queries – it only logs user actions, like PING timeout, kick, ban, join, part, etc. It has however some features – ignore (to ignore certain nicknames) and logrotate (to delete logs older than defined days and keep your DB clean).
Before using it you must configure to your own needs, and it’s done simply.
Hello. Let’s say you have a large sum of computers in your organization that are connected to a domain and some of those computers could be turned off for the night (library, computer class, etc.), because after using them not everyone turns them off and they are kept powered on through the night. That bothers me because ~50 computers are wasting energy! and so I came up with a powershell script that powers off the selected computers at a schedule, in my case I set it to run at 19:00 every day.
After letting it run for a couple of weeks, I think it seems to be working pretty well… You have to configure it though, by adding computer names with their full domain name and their MAC addresses in the array and that’s it. Log file is created at the location you specify (C:\ now) with computers that were shut down.
Script can be found in my project folder here.
Part of our employee synchronization from employee database to our AD is setting an out-of-office message in Office365 when the user gets disabled (to send a notice that the user no longer works here to whoever sends that person an email), and removing the message when that same person comes back to work. For this, I made a powershell script (damn, I love powershell) that lists all disabled users in our AD and goes through everyone checking if it has a message set up, if not then it sets one.
Script can be found here, in my projects folder.