I am a long time resident of the greater Chicago area. I enjoy the rich mix of cultures set inside the friendly midwestern temperament. Originally a farmer's daughter from Ohio (OH-IO!), I came up to Chicago to attend college. After my graduation with a political science degree I ended up as a series 7 stockbroker with Merrill Lynch and later Oppenheimer. I specialized in elephant hunting for high net-worth individuals. Shortly afterwards I met my husband who was a floor trader on the Chicago Mercantile Exchange. Six children followed in ten years with three children married and five grandchildren. Now I am the prototypical empty-nester looking for my next career path.
Since 1998 I have been the owner of several successful businesses which were home-based. I was able to keep an eye on my burgeoning brood and gain extensive business operations experience. My first business was a food company and the second was an educational franchise. My husband and I partnered in the educational franchise and had 100-300 employees per school year. I had planned on restarting my food business in early 2014 but a car accident cut those plans short. While I sat and drooled in my living room from my head injury the government funding for our educational franchise dried up. Time for a mid-life crisis! Once I was able to think clearly again I reviewed my Career Vision profile. Ironically, it listed computer programmer as the best job for me!
I spent time researching my options for learning computer programming in an efficient manner. Dev Bootcamp seemed to be the best option and after interviewing several 40+ year old DBC alumni I decided that this was the best path for me. However, learning programming has been an excruciating experience. I have been out of an academic environment for a long time so the rigor is daunting. The camaraderie that I have experienced from my fellow cohort members has sustained me through it so far. Maintaining the all important “growth mindset” has been difficult and is a daily battle to maintain it.
I have many interests that I have developed over the years (besides the most efficient way to change a diaper). I enjoy following the latest financial news through the Wall Street Journal and also geo-political issues. I spent a lot of time Martha Stewart-ing over the years so there aren’t too many hobbies that I haven’t tried at least once. I used to enjoy cooking before I started DBC; now we are eating in a more ad hoc manner which has been disappointing for my husband.
As far as the DBC tradition of identifying a quirky QUIRK I would have to say that you can find me at my local children's park ghost-riding the toy cars in the sand pit with my grandson! I also have a belly button fetish and take pictures of my grandkids bellies and send them to my family members that are belly button phobic.


0:00
play_arrow
Scenes
Hints
System
{% for state in states.values() %}
{{ state }}
{% endfor %}
{% for pin in outputpins.values() %}
{{ pin.name }}
Uit
Aan
{% endfor %}
{% for sound in sounds %}
play_arrow
{{ sound }}
{% endfor %}
Volume
Now playing..
(not playing)
volume_up
Now playing..
(not playing)
settings_voice
System
Halt system
Halt system
power_settings_new
Shutdown!
replay
Reboot!


page one
next page
page two
[[message]]
previous page
next page
page three
previous page
set wait for obj


Foreign Affairs
REPORT: Operation underway to bring Dundalk woman Lisa Smith back to Ireland
Foreign Affairs
by David LynchAccording to a report in today's Sunday World, an operation is underway to bring Dundalk woman Lisa Smith and her child back from Syria.
Defense Forces personnel were sent to the border area between Syria and Turkey in recent days to begin the operation, the newspaper reports.
Smith and her two-year-old daughter were being held by Kurdish forces in northeastern Syria.
The Journal.ie added that sources have confirmed to them that plans are in place to bring the 38-year-old Dundalk woman home.


{% load static %}
Delete Restaurant
Confirm deletion of the {{ restaurant_name }} restaurant
{% csrf_token %}


Note: This is not a live (in-browser) code coverage report. The analysis is performed offline (using node-cover).


Metis is a simple Hugo theme for academics, it features a blog section with MathJax. It is very, very minimal and you probably want to change it up a bit.
The theme is named after Metis, the Titaness of wisdom, skill and craft who helped Zeus to free his siblings from his fathers’ stomach by creating a potion causing him to vomit them out.
config.toml
[permalinks]
post = "/post/:year/:month/:day/:slug/"
note = "/note/:year/:month/:day/:slug/"
The menu can be defined here:
[[menu.main]]
name = "Home"
url = "/"
weight = 1
[[menu.main]]
name = "About"
url = "/about/"
weight = 2
[[menu.main]]
name = "Categories"
url = "/categories/"
weight = 3
[[menu.main]]
name = "Tags"
url = "/tags/"
weight = 4
[[menu.main]]
name = "Subscribe"
url = "/index.xml"
Alternatively, you can add menu: main
to the front matter of your content to make them show up in the menu.
The page footer can be defined in .Params.footer
, and the text is treated as Markdown, e.g.,
[params]
footer = "© [Floris den Hengst](https://florisdenhengst.github.io)"
Customization
There are two layout files under layouts/partials/
that you may want to override: head_custom.html
and foot_custom.html
.
There are only two CSS files in static/css/fonts.css
and static/css/style.css
which you may alter as you please.
Acknowledgements
This theme wouldn’t have been possible without the awesome Hugo documentation and the excellent Xmin theme as an example.


Please enter the billing address as it appears on your credit card statement.
Shipping policy
Summary of terms and conditions
Please review your Order Summary below before placing your order
Shopping bag (1 item)
Billing address
Contact information
Shipping address
Shipping method


Download BeeGrid to get compiled CSS source code, or include it via npm or include its classes via CDN.
NPM
To install and save in your package.json dependencies, run:
Yarn
As well as npm to install and save in your package.json dependencies, run:
Compiled CSS
Download ready-to-use compiled code BeeGrid v1.1.0 to easily drop into your project, which includes compiled and minified CSS bundles.
This package doesn’t include source files and documentation. Once downloaded, unzip the compressed folder and you’ll see something like this:
Source files
Download and compile all BeeGrid source code. This option require some additional tools:
- NPM (Node Package Manager).
- Sass compiler.
The package.json
included in the source folder include some methods for working with the framework, including compiling code, running documentation and more.
To use the build system and run documentation locally, you’ll need to follow these instruction and should be ready:
- Download and install Node.js, which we use to manage all our dependencies.
- Install Ruby and Bundler, and finally run
bundle install
. This install all ruby dependencies.
After doing this, with a terminal, go to the BeeGrid directory and run the following command:
This command install al the required dependencies for run some command, such as:
| Task | Description |
|---|---|
npm run css |
npm run css compile, lints and minify all Sass files and put the compiled CSS files in /dist/css folder. This also run [Autoprefixer][https://github.com/postcss/autoprefixer] command that parse CSS and add vendor prefixes to rule. |
npm run docs-serve |
Run the documentation locally at http://localhost:9001 . |
npm run build |
Build all CSS and JavaScript files and put them in dist folder. |


Minimum Team Size:
{{param.minTeamSize}}
Maximum Team Size:
{{param.maxTeamSize}}
- Team Name: {{t.$id}}
- Preferred team size: {{t.size}}
- Current team members:
- Wanted Skills:
- ID = {{m.$id}}
- Name = {{m.name}}
- Invites from the following teams:
- Request to join the following teams:


Unknown state
FMS Debug Msg
Robot Code Build
Scan Time (2 sec roll avg)
Connect
Auton Selectors:
No Autons Available
Selected
Auton
Selected
Side
X
Select the Auton you want to run:
Select the Side that the Auton is Starting on:
Chassis:
Left Velocity Target / Act
Right Velocity Target / Act
Pose
Angle
Elevator:
Height (in)
Height (NU)
State
Carriage:
Infeed %VBus
Outfeed %VBus
State
Infeed:
Wheels:%VBus
Left Current Angle / NU
Right Current Angle / NU
Arms:State
Arms:TargetAngle
Wheels:State
Connection
Login:
==== USB Connect ====
[<IP_ADDRESS>]
==== Radio Connect ====
[<IP_ADDRESS>]


Steganography Bitmap Editor
Upload a bitmap image.
Hide your initials in the image.
Select a BMP file:
Image data editor. Change the rightmost bit in each
byte with bits from your initials.
Helpers: Convert letters and numbers to binary.
Letter:
Number:
Original image
Stego image
(Right click to download.)


set var=42
set var 42
var=42
set
is not used to set or assign variables in Bourne shells. It's used to set shell options and positional parameters.
To assign variables, use var=value
with no set
or other qualifiers.
If you actually do want to set positional parameters, simply quoting them or using --
will make shellcheck stop warning, e.g. set -- var1 var2
or set "foo=bar"
.


Devise\Support
Namespaces
Devise\Support\ConfigDevise\Support\ConsoleDevise\Support\InstallerDevise\Support\MiddlewareDevise\Support\Sortable
Classes
Class DeviseHttpException should be the base class exception
for any exception thrown inside of Devise. This way we can
catch those specifically if we want and know that they are
different from just regular exceptions.
Class DeviseResponse for some reason Illuminate\Support\Facades\Response
is not an actual facade but a real class. So we can't use getFacadeAccessor
on it. Instead we write a proxy class called DeviseResponse which simply
calls static methods on Response object.
Class Framework wraps important components that we
use from Laravel's framework. Components like Config,
Validator, Request, Response.
Class SupportServiceProvider registers support components of
Devise and other helpers that Devise uses.
Exceptions
Class DeviseException should be the base class exception
for any exception thrown inside of Devise. This way we can
catch those specifically if we want and know that they are
different from just regular exceptions.
This validation exception is thrown
when ever there are validation errors
somewhere. It is used in the Manager class
to assert fields are valid.


--- layout: post title: Mobile Web Initiative day date: 2005-11-15 00:00:00 categories: interfaces-&-interaction mobile ---
Sergio and I have wandered up to the W3C Mobile Web Initiative day. My notes from the various talks follow...


The Curious Case of the Responsible Process
Friday February 04, 2022 by Tor Arne Vestbø | Comments
As of some of you might remember, Mac OS X Mountain Lion (10.8) added a new Privacy tab to the Security & Privacy pane of System Preferences.
The feature allowed granular access control to features such as contacts or location, and would ask the user to confirm attempts by the application to access them before granting access.
Most of you probably got to know this part of the OS when macOS Mojave (10.14) and Catalina (10.15) greatly expanded the number of privacy settings, resulting in a few rounds of whack-a-mole after upgrading.
Behind the scenes
The feature is backed by a subsystem called Transparency, Consent, and Control (TCC). The permissions are mediated by the tccd service, which is backed by a couple of permission databases; one for system wide permissions in /Library/Application Support/com.apple.TCC
, and one for user level permissions in ~/Library/Application\ Support/com.apple.TCC
.
If using the System Preferences UI is not your cup of tea you can use the tccutil
binary to manage the permissions, limited to revoking them, either wholesale or per application bundle ID:
❯ tccutil reset Calendar <optional-bundle-id>
To peek behind the curtains one can observe the stream of log messages produced by the com.apple.TCC
subsystem:
❯ log stream --debug --predicate 'subsystem == "com.apple.TCC"'
A simple example
Unfortunately there's no uniform API to interact with the TCC subsystem, to request or manage permissions, so as a simple test-case let's try to access the files for the user's calendars:
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
int main()
{
char *calendarPath = 0;
asprintf(&calendarPath, "%s/Library/Calendars", getenv("HOME"));
if (DIR *calendarsDir = opendir(calendarPath)) {
printf("Calendar access granted\n");
closedir(calendarsDir);
} else {
printf("Calendar access denied\n");
}
free(calendarPath);
return 0;
}
With the corresponding CMakeLists.txt
file:
cmake_minimum_required(VERSION 3.19)
project(MyApp LANGUAGES CXX)
add_executable(MyApp MACOSX_BUNDLE main.cpp)
set_target_properties(MyApp PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER com.company.MyApp)
Building and then running this application from Finder should pop up the following dialog:
And after choosing any of the options the result will be visible in the System Preferences:
We can reset the choice to make another attempt, by issuing:
❯ tccutil reset Calendar com.company.MyApp
Now, you might be tempted to launch the application from the terminal, to see the printf output:
❯ ./MyApp.app/Contents/MacOS/MyApp
If you do, you'll end up with this dialog instead:
What just happened? Why is iTerm now requesting access?
The responsible process
As it turns out, permissions are inherited by child processes. And when a process is about to access some protected resource, the TCC subsystem figure's out which process is the responsible one, and uses that as basis for requesting and persisting the result.
We can observe this by looking at the log stream, but an easier way is to consult launchctl
:
❯ sudo launchctl procinfo $(pidof MyApp) | grep responsible
responsible pid = 1471
responsible unique pid = 1471
responsible path = /Applications/iTerm.app/Contents/MacOS/iTerm2
In this case we've launched MyApp directly from within iTerm2, and
hence TCC decides that iTerm2 is responsible for MyApp. Whereas if we
opened MyApp from Finder or via open
, TCC would attribute the calendar access to MyApp:
❯ sudo launchctl procinfo $(pidof MyApp) | grep responsible
responsible pid = 3425
responsible unique pid = 202085
responsible path = /Users/torarne/dev/tmp/tcc/MyApp/build/MyApp.app/Contents/MacOS/MyApp
In the case of an application embedding and launching helper executables this behavior of course makes sense, but it can be a bit surprising in cases such as launching apps from the terminal.
The rabbit hole that started it all
What led me down this path was an observation that Qt Creator was gaining more and more permission-related usage descriptions in its own Info.plist
file (a way that applications can give more context to users about why
the given permissions are needed, which in some cases is a requirement
to gain that permission). I was surprised by this, as I wasn't expecting
Qt Creator to need access to my contacts, calendars, or photos.
As it turned out, since Qt Creator was launching user applications when running and debugging, it was effectively becoming the responsible process for all these user applications. And if one of them required a permission that needed a corresponding usage description, then the only way to make the application work was to add the description to the responsible process; Qt Creator.
This didn't sit right with me, so I started poking at how things
worked in Xcode. It turned out that Xcode did not have this issue, nor
did launching the application from within lldb
:
❯ lldb ./MyApp.app/Contents/MacOS/MyApp
(lldb) target create "./MyApp.app/Contents/MacOS/MyApp"
Current executable set to '/Users/torarne/dev/tmp/tcc/MyApp/build/MyApp.app/Contents/MacOS/MyApp' (x86_64).
(lldb) r
Process 4277 launched: '/Users/torarne/dev/tmp/tcc/MyApp/build/MyApp.app/Contents/MacOS/MyApp' (x86_64)
❯ sudo launchctl procinfo $(pidof MyApp) | grep responsible
responsible pid = 3143
responsible unique pid = 204085
responsible path = /Users/torarne/dev/tmp/tcc/MyApp/build/MyApp.app/Contents/MacOS/MyApp
Somehow lldb
was circumventing the logic that was deciding which process was the responsible one.
Luckily LLDB is part of the open source LLVM project, so I was able to track it down to this change, with the magic formula:
int responsibility_spawnattrs_setdisclaim(posix_spawnattr_t attrs, int disclaim);
By setting a special flag on the spawn-attributes before spawning, the resulting process would break free from its parent process and become responsible for its own permissions. A quick search for the function name showed that LLDB wasn't the only one using this trick.
A quick prototype later I had a tool that would let Qt Creator disclaim any responsibilities for the user applications it launches, allowing us to remove all of the permission usage-descriptions from Qt Creator:
❯ disclaim ./MyApp.app/Contents/MacOS/MyApp
Calendar access granted
This feature will be released in the upcoming Qt Creator 7 release. As noted in the change log it may result in some applications needing adjustments:
Applications launched from Qt Creator will no longer inherit hardened runtime entitlements from Qt Creator, which may result in the application needing to declare its own set of entitlements if the hardened runtime is enabled.
Let us know if this causes any unexpected issues.
Postscript
Testing other IDEs, I was seeing similar issues as Qt Creator had, so this seems like a common issue for this use-case:
❯ sudo launchctl procinfo $(pidof MyApp) | grep responsible
responsible pid = 5900
responsible unique pid = 204539
responsible path = /Applications/CLion.app/Contents/MacOS/clion
❯ sudo launchctl procinfo $(pidof MyApp) | grep responsible
responsible pid = 6215
responsible unique pid = 204854
responsible path = /Applications/Visual Studio Code.app/Contents/MacOS/Electron
I'm still not sure how Xcode does things when running an application
without debugging it (i.e. not going via LLDB). From looking at the
process tree, the launched process is not a child of LLDB's debugserver
, like it is when debugging, but instead is a direct child of launchd. I can achieve the same with skipping the POSIX_SPAWN_SETEXEC
flag, but I'm not sure if that's really what's going on.
One other option would be to use open
to launch the application, as that parents it under launchd
, but this only works for application bundles and not for standalone executables.
Let me know in the comments if you have any tips or tricks 😊


A Blog is merely a tool that lets you do anthing from change the world to share your shopping list...unknown


--- layout: post title: Fun with 82 - WebDrawer, search forms and IDOL categories: [] tags: webdrawer cm-82 status: publish type: post published: true meta: {} ---
Having spent quite a few hours reviewing, testing and playing with HPRM 82 I thought I would share some of my favourite things. These are mostly technical things so you are unlikely to find me expounding on some great new records management feature, talk to support or sales for that. This is the first in the series.
A combination of some new features in HPRM 82 allow you to add something a little bit like a Google search to WebDrawer, all without writing any code.


Dog Man: Lord of the Fleas: From the Creator of Captain
HotSome quick example text to build on the card title and make up the bulk of the card's content.
The Official SAT Study Guide, 2018 Edition
HotSome quick example text to build on the card title and make up the bulk of the card's content.
Educated: A Memoir
HotSome quick example text to build on the card title and make up the bulk of the card's content.
Rich People Problems: A Novel
HotSome quick example text to build on the card title and make up the bulk of the card's content.
Liars, Leakers and Liberals
HotSome quick example text to build on the card title and make up the bulk of the card's content.
You are a Badass
HotSome quick example text to build on the card title and make up the bulk of the card's content.
Girls, Wash Your Face
HotSome quick example text to build on the card title and make up the bulk of the card's content.
House of Trump, House of Putin: The Untold Story of
HotSome quick example text to build on the card title and make up the bulk of the card's content.
The Plant Paradox Cookbook: 100 Simple and Delicious
HotSome quick example text to build on the card title and make up the bulk of the card's content.
Great Gatsby, the; (Us Import Ed.)
HotSome quick example text to build on the card title and make up the bulk of the card's content.
The Restless Wave: Good Times, Just Causes, Great
HotSome quick example text to build on the card title and make up the bulk of the card's content.
The Plant Paradox: The Hidden Dangers in "Healthy" Foods
HotSome quick example text to build on the card title and make up the bulk of the card's content.