What services are
Installing Services
How Malware uses services
Finding hidden services
Non-interactive background processes.
Commonly run with higher privileges than the user
What runs as services?
Installed services located in HKLM/SYSTEM/CurrentControlSet/Services
Each service has a subkey with various values that describe how and when the service starts.
Also shows if the service is for a process, DLL or kernel driver.
Manually with sc.exe
Batch Scripts
Windows API
Windows Management Instrumentation (WMI)
How to install service with sc?
@echo off
set SERVICENAME="Malware"
set BINPATH="c:\bin\malware.dll"
sc create "%SERVICENAME" binPath= "%SystemRoot%\system32\svchost.exe" -k "%SERVICENAME" type= share start= auto
reg add "HKLM\System\CurrentCOntrolSet\Services\%SERVICENAME\Parameters" /v ServiceDll /t REG_EXPAND_SZ /d "%BINPATH%" /f
sc start %SERVICENAME%
SC_HANDLE WINAPI CreateService(
_In_ SC_HANDLE hSCManager,
_In_ LPCTSTR lpServiceName,
_In_opt_ LPCTSTR lpDisplayName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwServiceType,
_In_ DWORD dwStartType,
_In_ DWORD dwErrorControl,
_In_opt_ LPCTSTR lpBinaryPathName,
_In_opt_ LPCTSTR lpLoadOrderGroup,
_Out_opt_ LPDWORD lpdwTagId,
_In_opt_ LPCTSTR lpDependencies,
_In_opt_ LPCTSTR lpServiceStartName,
_In_opt_ LPCTSTR lpPassword
);
BOOL WINAPI StartService(
_In_ SC_HANDLE hService,
_In_ DWORD dwNumServiceArgs,
_In_opt_ LPCTSTR *lpServiceArgVectors
);
| Name | Hex |
|----------------------|------|
| SERVICE_AUTO_START | 0x02 |
| SERVICE_BOOT_START | 0x00 |
| SERVICE_DEMAND_START | 0x03 |
| SERVICE_DISABLED | 0x04 |
| SERVICE_SYSTEM_START | 0x01 |
| Name | Hex |
|-----------------------------|------|
| SERVICE_ADAPTER | 0x04 |
| SERVICE_FILE_SYSTEM_DRIVER | 0x02 |
| SERVICE_KERNEL_DRIVER | 0x01 |
| SERVICE_RECOGNIZER_DRIVER | 0x08 |
| SERVICE_WIN32_OWN_PROCESS | 0x10 |
| SERVICE_WIN32_SHARE_PROCESS | 0x20 |
Create required registry keys
Call NdrClientCall
Call NtLoadDriver
Both methods AVOID event logs!
After service starts, just delete registry keys!
Some malware will stop services
Look at stopped and running services!
Wscsvr = Windows Security Center Wuauserv = Windows Auto Update WinDefend = Windows Defender WerSvc = Windows Error Reporting
Services MMC snap-in
PowerShell cmdlet Get-Service
PS C:\Users\topher> Get-Service
Status Name DisplayName
------ ---- -----------
Running AeLookupSvc Application Experience
Stopped ALG Application Layer Gateway Service
Stopped AppIDSvc Application Identity
Running Appinfo Application Information
Stopped aspnet_state ASP.NET State Service
Running AudioEndpointBu... Windows Audio Endpoint Builder
Running AudioSrv Windows Audio
Stopped AxInstSV ActiveX Installer (AxInstSV)
Stopped BDESVC BitLocker Drive Encryption Service
Running BFE Base Filtering Engine
Running BITS Background Intelligent Transfer Ser...
Stopped Browser Computer Browser
Stopped bthserv Bluetooth Support Service
Stopped CertPropSvc Certificate Propagation
Stopped clr_optimizatio... Microsoft .NET Framework NGEN v2.0....
Stopped clr_optimizatio... Microsoft .NET Framework NGEN v2.0....
Stopped clr_optimizatio... Microsoft .NET Framework NGEN v4.0....
Stopped clr_optimizatio... Microsoft .NET Framework NGEN v4.0....
Stopped COMSysApp COM+ System Application
Running CryptSvc Cryptographic Services
Running DcomLaunch DCOM Server Process Launcher
Stopped defragsvc Disk Defragmenter
Running Dhcp DHCP Client
Running Dnscache DNS Client
Stopped dot3svc Wired AutoConfig
Running DPS Diagnostic Policy Service
Running EapHost Extensible Authentication Protocol
Sc.exe and Query
C:\Users\topher>sc query
DISPLAY_NAME: Power
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(NOT_STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SERVICE_NAME: ProfSvc
DISPLAY_NAME: User Profile Service
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Event Logs
Registry Keys
Services for invalid states
Unlinked Service Records
Hijacked Services
SCM maintains a linked-list of installed services
Magic = Serv or serH
Undocumented
>>> dt("_SERVICE_HEADER")
'_SERVICE_HEADER' (None bytes)
0x0 : Tag ['array', 4, ['unsigned char']]
0xc : ServiceRecord ['pointer', ['_SERVICE_RECORD']]
>>> dt("_SERVICE_RECORD")
'_SERVICE_RECORD' (None bytes)
0x0 : ServiceList ['_SERVICE_LIST_ENTRY']
0x8 : ServiceName ['pointer', ['String', {'length': 512, 'encoding': 'utf16'}]]
0xc : DisplayName ['pointer', ['String', {'length': 512, 'encoding': 'utf16'}]]
0x10 : Order ['unsigned int']
0x18 : Tag ['array', 4, ['unsigned char']]
0x24 : DriverName ['pointer', ['String', {'length': 256, 'encoding': 'utf16'}]]
0x24 : ServiceProcess ['pointer', ['_SERVICE_PROCESS']]
0x28 : Type ['Flags', {'bitmap': {'SERVICE_KERNEL_DRIVER': 0, 'SERVICE_WIN32_OWN_PROCESS': 4, 'SERVICE_WIN32_SHARE_PROCESS': 5, 'SERVICE_INTERACTIVE_PROCESS': 8, 'SERVICE_FILE_SYSTEM_DRIVER': 1}}]
0x2c : State ['Enumeration', {'target': 'long', 'choices': {1: 'SERVICE_STOPPED', 2: 'SERVICE_START_PENDING', 3: 'SERVICE_STOP_PENDING', 4: 'SERVICE_RUNNING', 5: 'SERVICE_CONTINUE_PENDING', 6: 'SERVICE_PAUSE_PENDING', 7: 'SERVICE_PAUSED'}}]
0x44 : Start ['Enumeration', {'target': 'long', 'choices': {0: 'SERVICE_BOOT_START', 1: 'SERVICE_SYSTEM_START', 2: 'SERVICE_AUTO_START', 3: 'SERVICE_DEMAND_START', 4: 'SERVICE_DISABLED'}}]
>>> dt("_SERVICE_PROCESS")
'_SERVICE_PROCESS' (None bytes)
0x8 : BinaryPath ['pointer', ['String', {'length': 256, 'encoding': 'utf16'}]]
0xc : ProcessId ['unsigned int']
Position in the list of ServiceList (only a prevois pointer) indicates start time. typically alphabetically
Win7 has only a
0x0 : prevEntry ['_SERVICE_LIST_ENTRY']
Pool tag scan for Windows services
[root&windows]#volatility -f Lab2.vmem --profile=WinXPSP2x86 svcscan
Volatility Foundation Volatility Framework 2.4
Offset: 0x671e90
Order: 1
Start: SERVICE_DISABLED
Process ID: -
Service Name: Abiosdsk
Display Name: Abiosdsk
Service Type: SERVICE_KERNEL_DRIVER
Service State: SERVICE_STOPPED
Binary Path: -
Offset: 0x671fb0
Order: 3
Start: SERVICE_BOOT_START
Process ID: -
Service Name: ACPI
Display Name: Microsoft ACPI Driver
Service Type: SERVICE_KERNEL_DRIVER
Service State: SERVICE_RUNNING
Binary Path: \Driver\ACPI
Registry keys are updated with a last write timestamp when service is created or modified
Scan all timestamps and view latest ones
>>> import volatility.plugins.registry.registryapi as registryapi
>>> regapi = registryapi.RegistryApi(self._config)
>>> key = "ControlSet001\Services"
>>> subkeys = regapi.reg_get_all_subkeys("system", key)
>>> services = dict((s.Name, int(s.LastWriteTime)) for s in subkeys)
>>> times = sorted(set(services.values()), reverse=True)
>>> top_three = times[0:3]
>>> for time in top_three:
... for name, ts in services.items():
... if ts == time:
... print time, name
...
1428376879 driver
1428206878 pmem
1428106135 DMusic
1428106135 swmidi
1428106135 drmkaud
1428106135 kmixer
1428106135 aec
If you find keys, are they in svcscan?
Malware can hide from SCM
[root&windows]#volatility -f Lab2.vmem --profile=WinXPSP2x86 printkey -K 'ControlSet001\Services\kmixer'
Volatility Foundation Volatility Framework 2.4
Legend: (S) = Stable (V) = Volatile
----------------------------
Registry: \Device\HarddiskVolume1\WINDOWS\system32\config\system
Key name: kmixer (S)
Last updated: 2015-04-04 00:08:55 UTC+0000
Subkeys:
(S) Security
(V) Enum
Values:
REG_DWORD Type : (S) 1
REG_DWORD Start : (S) 3
REG_DWORD ErrorControl : (S) 1
REG_EXPAND_SZ ImagePath : (S) system32\drivers\kmixer.sys
REG_SZ DisplayName : (S) Microsoft Kernel Wave Audio Mixer
[root&windows]#volatility -f Lab2.vmem --profile=WinXPSP2x86 modules | grep kmixer.sys
Volatility Foundation Volatility Framework 2.4
0x81ee42a0 kmixer.sys 0xb1564000 0x2b000 \SystemRoot\system32\drivers\kmixer.sys
Attackers can change path in registry of a service to point to malware .exe, .dll, etc.
Can also overwrite existing DLL or binary
Mandiant APT1 Report shows a lot of 61938 malware hijacks and installs services
Use svcscan and look for ServiceDll and Binary Paths
Compare them with paths from an uninfected system
Pull hypothesized malicious binary out of capture and analyze
[root&windows]#volatility -f Lab2.vmem --profile=WinXPSP2x86 svcscan -v | egrep '(ServiceDll|Binary Path)'
Volatility Foundation Volatility Framework 2.4
ServiceDll: %SystemRoot%\system32\alrsvc.dll
Binary Path: C:\WINDOWS\System32\alg.exe
ServiceDll: %SystemRoot%\System32\appmgmts.dll
Binary Path: C:\WINDOWS\System32\svchost.exe -k netsvcs
ServiceDll: %SystemRoot%\System32\audiosrv.dll
Binary Path: \Driver\audstub
Binary Path: \Driver\Beep
ServiceDll: C:\WINDOWS\system32\qmgr.dll
ServiceDll: %SystemRoot%\System32\browser.dll
import pywintypes, win32api, win32con
def main():
w32 = win32con
read_flags = (w32.KEY_READ |
w32.KEY_ENUMERATE_SUB_KEYS |
w32.KEY_QUERY_VALUE)
hkey = win32api.RegOpenKeyEx(w32.HKEY_LOCAL_MACHINE,
"System\\ControlSet001\\Services",
0,
read_flags)
keys = [data[0] for data in win32api.RegEnumKeyEx(hkey)]
for name in keys:
try:
subkey = win32api.RegOpenKeyEx(
hkey,
"%s\\Parameters" % name,
0,
read_flags)
value = win32api.RegQueryValueEx(
subkey,
"ServiceDll")
except pywintypes.error:
continue
path = win32api.ExpandEnvironmentStrings(value[0])
name = name.lower()
path = path.lower()
if path.find("c:\windows") != -1:
path = path.replace("c:\windows", "%SYSTEMROOT%")
print "%s" % (path)
if __name__ == "__main__":
main()
c:\Python27>python.exe Scripts\serviceDll.py
%SYSTEMROOT%\system32\aelupsvc.dll
%SYSTEMROOT%\system32\appidsvc.dll
%SYSTEMROOT%\system32\appinfo.dll
[SNIP]
[root&windows]#volatility -f Win7.bin --profile=Win7SP0x86 svcscan -v | grep ServiceDll
ServiceDll: %SystemRoot%\system32\wdi.dll
ServiceDll: %SystemRoot%\system32\wdi.dll
ServiceDll: %SystemRoot%\System32\WcsPlugInService.dll
ServiceDll: %SystemRoot%\System32\wcncsvc.dll
ServiceDll: %SystemRoot%\System32\wbiosrvc.dll
ServiceDll: %systemroot%\system32\w32time.dll
ServiceDll: %SystemRoot%\system32\wpdbusenum.dll
ServiceDll: %SystemRoot%\System32\wpcsvc.dll
ServiceDll: %SystemRoot%\System32\wlansvc.dll
ServiceDll: %SystemRoot%\system32\WsmSvc.dll
ServiceDll: %SystemRoot%\System32\wscsvc.dll
ServiceDll: %SystemRoot%\System32\wwansvc.dll
ServiceDll: %SystemRoot%\System32\WUDFSvc.dll
ServiceDll: %systemroot%\system32\wuaueng.dll
Malware can just overwrite a binary on disk
Hard to detect
Hashing from Volatility and on disk does not work
Look at artifacts of DLL
Dump DLLs and compare them to ones of disk
[root&windows]#volatility -f Win7.bin --profile=Win7SP0x86 svcscan -v | grep ServiceDll > serviceDlls
[root&windows]#sed 's/ServiceDll: %SystemRoot%\\System32\\//gI' serviceDlls > serviceDllSed
[root&windows]#cat serviceDllSed | while read dll; do volatility -f Win7.bin --profile=Win7SP0x86 dlldump -r $dl^C-D serviceDllDump/; done
Run each file through virus scanner or analyze
VirusTotal is a free service that analyzes suspicious files and URLs and facilitates the quick detection of viruses, worms, trojans, and all kinds of malware.
Use the VirusTotal API to scan all the DLLs that were dumped
VirusTotal Public API keys are free
I used https://github.com/Gawen/virustotal as main module
import virustotal
import os
from os import path
indir = '/root/amf/windows/serviceDllDump/'
virus = virustotal.VirusTotal('API_KEY_HERE')
fileNames = filter(path.isfile, os.listdir(indir))
for f in fileNames:
print(f)
report = virus.scan(f)
report.join()
assert report.done == True
print "Report"
print "- Resource's UID:",report.id
print "- Scan's UID:", report.scan_id
print "- Permalink:" ,report.permalink
print "- Resource's MD5:", report.md5
print "- Resource's status:", report.status
print "- Antivirus' total:", report.total
print "- Antivirus's positives:", report.positives
Note: Permalink lets you see VirusTotal results from web
module.352.3dc5b420.71330000.dll
Report
- Resource's UID: 8b641606bef10135ba8ef342a99f41dde8be69af53dd039ba3834fe0c8c36010-1428875468
- Scan's UID: 8b641606bef10135ba8ef342a99f41dde8be69af53dd039ba3834fe0c8c36010-1428875468
- Permalink: https://www.virustotal.com/file/8b641606bef10135ba8ef342a99f41dde8be69af53dd039ba3834fe0c8c36010/analysis/1428875468/
- Resource's MD5: a58b2a03fe4edbebd43c12a4564ce9ae
- Resource's status: Scan finished, information embedded
- Antivirus' total: 56
- Antivirus's positives: 0
Virus sandboxes are not end all be all, but there are a good start!
Takes a minute or two per DLL... run then go to lunch! :)
| Table of Contents | t |
|---|---|
| Exposé | ESC |
| Full screen slides | e |
| Presenter View | p |
| Source Files | s |
| Slide Numbers | n |
| Toggle screen blanking | b |
| Show/hide slide context | c |
| Notes | 2 |
| Help | h |


2020 Infiniti Edition 30 Model Pricing Announced
Infiniti is celebrating its 30th anniversary at the LA Auto Show with the Edition 30 collection.
by Martin BiggBack in August at Monterey Car Week, Infiniti unveiled its new Edition 30 range to celebrate the company's 30th anniversary. Now, the commemorative models are making their motor show debut at the 2019 LA Auto Show.
The Edition 30 lineup comprises of Infiniti's best-selling models: the Q50, Q60, QX50, QX60, and QX80. Each model includes new standard safety tech that's usually offered as part of the company's ProAssist package, including intelligent cruise control, distance control assist, around view monitor, backup collision intervention and predictive forward collision warning.
In addition, each Edition 30 model features distinctive design touches unique to the collection. Three exterior colors are available: Black Obsidian, Graphite Shadow and Majestic White, combined with a minimalist interior featuring handcrafted materials. Each model also boasts special "Edition 30" exterior badging and stylish new 19-inch alloy wheels for the Q50 and Q60 and larger 20- or 22-inch alloys for the QX50, QX60 and QX80 finished in dark chrome.
"For our 30th Anniversary, we've been focused on looking 30 Years Forward while celebrating the momentous technological and design innovations of our past and present," said Jeff Pope, Group Vice President at Infiniti Americas. "This includes our Edition 30 line of vehicles, which we are honored to showcase at the Los Angeles Auto Show this year."
To mark the Edition 30's auto show debut, Infiniti has also announced pricing details for the commemorative models. The Q50 Edition 30 starts at $43,700, while the Q60 starts at $49,700. The QX50, on the other hand, starts at $45,300, while the QX60 starts at $50,850 and the QX80 starts at $66,750. Each model includes a complimentary ProAssist package.
The Infiniti Edition 30 models will be on display at the 2019 Los Angeles Auto Show from November 22 to December 1. Also on display at the Infiniti stand will be the Project Black S and the Qs Inspiration concept.


Hounded writers tell of their woes
by BAMUTURAKI MUSINGUZIIn Summary
- Persecuted: Every year, PEN highlights the cases of five persecuted writers. This year PEN highlighed the cases of Lydia Cacho, Stella Nyanzi, Shakthika Sathkumara, Nedim Türfent and Galal El-Behairy
When Eritrean author Goitom Sahle translated Sean Covey’s book The 7 Habits of Highly Effective Teens from English to Tigrinya, little did he know that he would end up incarcerated by his home government.
In the handbook about self-esteem and success, Covey advises teens on how to handle tough issues and life-changing decisions.
He provides a simple approach to help teens improve their self-image, build friendships, resist peer pressure, achieve their goals, and appreciate their parents, as well as tackle challenges like cyberbullying and social media.
The Eritrean regime considered Covey’s ideas contrary to its norms, and Sahle was arrested and imprisoned.
“I have had lots of ups and downs since that translation. I was detained for six months in 2016 in a mining town in northern Eritrea. I fled Eritrea in 2017 and came to Uganda. The Eritrean authorities have contacted my family back at home and hacked into my e-mail to see who contacts me. The problem is that Eritrean state agents keep following us in exile,” Sahle said.
He shared his experience in Kampala while marking the Day of the Imprisoned Writer event held on November 15. Activities included a panel discussion and readings on the theme Writing for a Freer World: Challenges and Opportunities.
Also Read
-
WHAT’S ON: One year on, Marafiki Night Live thrives
-
BOOKS: ‘The Face’ speaks of culture, identity and relationships
-
GALLERIES: When drawing is just the beginning
Advertisement
The event, organised by PEN-Uganda, also focused on displaced (refugee) writers who spoke about writing in their country and in Uganda.
“Because we are refugees, we are not allowed to work in exile. So we have to depend on remittances sent to us by our relatives abroad,” Sahle said.
Eritrean poet Fishale Tesfai said: “I have no problems writing my poems here in Uganda.” He plans to publish his debut Tigrinya poetry collection that focuses on life challenges and political issues next year.
“Poetry is my way of expressing my feelings as a refugee,” he said.
Tesfai was forced to drop out of school to serve in the compulsory Eritrean national military service for three years. He fled Eritrea in February 2009 to Ethiopia, Sudan, and Israel, and ended up in Uganda in January 2017.
“Unfortunately, writers are aware of live wires around them so they censor themselves so as not to step on those wires,” author and PEN-Uganda vice president Beatrice Lamwaka said.
“We learnt about the plight of writers living here in exile and the hardships they encounter. I also learnt that as writers we need to be as vigilant,” Ugandan poet Peter Kagayi, said
The Day of the Imprisoned Writer is an annual, international event to recognise and support writers who stand up to attacks made against freedom of expression. It was started in 1981 by PEN International’s Writers in Prison Committee.
This year, PEN International called for urgent international action to protect writers and journalists worldwide.
Every year, PEN highlights the cases of five persecuted writers—be they imprisoned, facing prosecution or otherwise at risk—that are emblematic of the type of threats and attacks faced around the world. This year PEN highlighed the cases of Lydia Cacho, Stella Nyanzi, Shakthika Sathkumara, Nedim Türfent and Galal El-Behairy.
Celebrated Mexican writer, journalist and activist Lydia Cacho Ribeiro has faced continued harassment, death threats and attacks due to her investigative journalism and activism.
Ugandan academic, writer and activist Dr Nyanzi is currently serving an 18-month sentence for “cyber harassment”, in relation to a poem she wrote on Facebook in September 2018 criticising Uganda’s President Yoweri Museveni (and his mother). Dr Nyanzi has served almost 11 months of her sentence.
Award-winning Sri Lankan writer and poet Shakthika Sathkumara faces legal proceedings that could see him sentenced to up to 10 years in prison.
Turkish news editor, reporter and poet Nedim Türfent is serving an eight-year-and-nine-month prison sentence on trumped-up terrorism charges following an unfair trial, during which 19 witnesses said they had been tortured into testifying against him.
Egyptian poet, lyricist and activist Galal El-Behairy is currently serving a three-year sentence for “insulting the military” and “spreading false news”. He is being held in the maximum-security Tora prison in Cairo.


Accessor method to get a handle on the id of the current Job in focus.
string currentJob, the id of the current Job.
Returns the Job object with the corresponding id passed in as a parameter.
Accessor method that returns the string array of Worker ids, of the Workers that requested this current Job. The string is split by the " ", so that each element of the array contains a single Worker id.
result, the resulting array of Worker ids.
Returns all of the current Job objects in the database thrugh the web API.
Observable<Job[]>, all of the Job objects in the database.
Accessor method to set the id of the current Job in focus.
Accessor method that sets the requests that the current Job in focus has. This string simply contains a list of " " separated Worker ids. These Worker ids correspond to the Workers that requested the current Job in focus.
Generated using TypeDoc
Deletes the Job object passed in as a parameter on the database through the web API.


THE SUBSTITUTE A film review by Dr. T. White Copyright 1997 Flying Inkpot
Director: Robert Mandel Written by: Roy Frumkes Alan Ormsby Rocco Simonelli Cast: Tom Berenger, Diane Venora, Ernie Hudson Rating: ** out of ***** Run Time: Approx. 114 Minutes
The premise of this movie is, well, pretty far-fetched. Tom Berenger plays Shale, a mercenary who is temporarily out of work (those fools at the CIA have denied his existence just because he and his buddies botched a job in Cuba). Fortunately, his girl friend (Diane Venora), a teacher at Christopher Columbus High School in Miami, gets her knee cap broken by a disgruntled student, creating a job opening for Shale as a substitute teacher. Not telling his girl friend, who might object on pedagogical grounds, he creates a number of fake higher degrees for himself (from Yale, Harvard, Princeton, et al) and begins his tenure as a high school teacher.
The students (junkies, drug dealers, gang members, sleazy sluts, ice-pick wielders...you get the picture) don't really take to him right away, so he hits one in the face with a can and breaks a few fingers. This gets their attention to a certain extent, so he tells them the story of the Vietnam War: "See, some homeboys from the North tried to muscle in on the turf of the homeboys from the South." Oh yeah, now they can dig it; the problem is just that nobody ever explained it properly before.
But wait! There are drugs being dealt in the school itself! And behind the whole scheme, in cahoots with the head gang, the KOD (no, not "cod", but "Knights of Destruction"...really!), is none other than...the upright, ex-cop principal, played by the forgotten ghostbuster, Ernie Hudson! So Shale does what any good teacher would do. He gets his buddies together, they gather together a bunch of bazookas and other major weapons, explosives, and cool stuff like that, and they have a big showdown against the drug dealers and KOD at the high school.
OK, so the premise is not just far-fetched, it's downright dumb. If this were a Hong Kong action comedy, we might just accept it, but it takes itself far too seriously to be truly fun. Oh, it has its moments; how one can truly hate a movie in which huge (really HUGE) amounts of cocaine are delivered in school busses? And to be fair, it is almost never really boring, as the action is interrupted by only short sequences of actual story.
But over all, this is pretty much a made-for-TV movie with more (and bigger) explosions and more foul language. In fact, it reminded me of "Miami Vice" without the production values, babes in skimpy bikinis, and pastels. If you can sneak into the theater without paying, go for it. Otherwise, wait for video.
The Flying Inkpot Rating System: * Wait for the TV2 broadcast. ** A little creaky, but still better than staying at home with Gotcha! *** Pretty good, bring a friend. **** Amazing, potent stuff. ***** Perfection. See it twice.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Answer Yes or No to each of the questions below to which programming language is suggested for you to learn.
Sample text
Sample text
Sample text
We recommend JavaScript for people who have no prior coding experience.
If you don't think these questions need to be more helpful, maybe you already know what you're doing and don't need any help to begin with.
So you have experience AND love the Wizard of Oz. I mean, we kind of have to suggest Ruby then, don't we?


Hi,
I am pretty confused about the versions of emoncms out there. I am looking to upgrade my version since there seems to be a couple minor things that have been fixed. For example on the input page, I don't get a last value for my feed, so it's difficult to tell what input it is from a new sensor.
Anyway, do I need Redis installed? Is it possible to go on with emoncms without redis? For starters, my server is a Centos based cPanel server that won't run apt-get so installing redis seems to be dicey.
Any advise? I am also pretty confused as to where the latest version of 6.0 code is verses the 7.0 code. Do the modules only work with 7.0?
Re: Problems upgrading to emoncms 7.0
I would love an noob feature to do an easy upgrade to an latest stable version. Not that I mind tinkering stuff, but I'd rather keep emoncms running, without breaking stuff. Since upgrade info is scattered all over the place, and sometimes out of date, and script that does this for us would be awesome!
Re: Problems upgrading to emoncms 7.0
I am having real issues as well
Paul has been very helpful in trying to track these down http://openenergymonitor.org/emon/node/3531
I think I am going to sit on this for a while and have a think. As I am planning to swap from an SD card install to SD card/HDD it might be less painful to set this up and then just to import my feeds and settings from emonCMS.org
Re: Problems upgrading to emoncms 7.0
Mark, the current Git 'master' is v7, but you can always obtain a previous version via Git.
Obtain the hash key of a version dating back to say Dec 15th (from https://github.com/emoncms/emoncms/commits/master ) which was v6 and run;
$ git checkout thehashkeyfromabove
..and do the same with the modules.
Paul
Re: Problems upgrading to emoncms 7.0
Thanks Paul. It does seem installing emoncms is becoming more difficult.
Anyone any advice for installing redis on a Centos server?


This is a sample blogging app using Angular and Google cloud firestore.
Source code is available on
GitHub.
Authorization is disabled here intentionally, to allow all the users to
experience the full feature.
To understand how role-based authorization is implemented, get the source
code from GitHub.
Login with Google to add/edit/delete a sample blog.
Follow common courtesy. Do no delete any exisiting blog.
For any feedback/suggestion contact me via
Twitter.


| Request ID | Date Rejected | Rejected At | Employee ID | Client Name | Employer | Loan Type | Payment Method | Rejected By | TL Name | Branch | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{detail.LoanRefId}} | {{detail.StatusDate|date:'longDate'}} | {{detail.StatusDate|date:'shortTime'}} | {{detail.ClientRefId}} | {{detail.ClientName}} | {{detail.EmployerName}} | {{detail.LoanType}} | {{detail.PaymentMethod}} | {{detail.StatusByUser}} | {{detail.TLCode}} | {{detail.Branch}} |
Tray is empty


About this documentation
This documentation is written for people who alreday know how to program and wish to create new programming tasks, going beyond what can be done using the Menu-driven World Editor included in Reeborg's World. For example, you might want to use different images, including animation, or to add more capabilities to Reeborg's World. This is not a programming tutorial.
This documentation has been generated utomatically using Jsdoc from comments included in javascript source files; unlike the existing tutorial, this documentation is available only in English.
Since comments are not executed, it can happen that they do not reflect what the code is actually doing. If you find that the information provided here is incorrect, or if you have any question or suggestion, please do not hesitate to submit a bug report.
Please note that there are many more functions belonging to the RUR
namespace
than what is documented here. As a general rule, you should not create additional
functions or other objects belonging to this namespace.


Storage configuration
Estimated reading time: 7 minutesThese are the docs for DTR version 2.0
To select a different version, use the selector below.
After installing Docker Trusted Registry, one of your first tasks is to designate and configure the Trusted Registry storage backend. This document provides the following:
- Information describing your storage backend options.
- Configuration steps using either the Trusted Registry UI or a YAML file.
While there is a default storage backend, filesystem
, the Trusted Registry
offers other options that are cloud-based. This flexibility to configure to a
different storage backend allows you to:
- Scale your Trusted Registry
- Leverage storage redundancy
- Store your images anywhere in the cloud
- Take advantage of other features that are critical to your organization
At first, you might have explored Docker Trusted Registry and Docker Engine by installing them on your system to familiarize yourself with them. However, for various reasons such as deployment purposes or continuous integration, it makes sense to think about your long term organization’s needs when selecting a storage backend. The Trusted Registry natively supports TLS and basic authentication. It also ships with a notification system, calling webhooks in response to activity. The notification system also provides both extensive logging and reporting, which is useful for organizations that want to collect metrics.
Understand the Trusted Registry storage backend
By default, your Trusted Registry data resides as a data volume on the host
filesystem
. This is where your repositories and images are stored. This
storage driver is the local posix filesystem
and is configured to use a
directory tree in the local filesystem. It’s suitable for development or small
deployments. The filesystem
can be located on the same computer as the Trusted
Registry, or on a separate system.
Additionally, the Trusted Registry supports these cloud-based storage drivers:
- Amazon Simple Storage Solution S3
- OpenStack Swift
- Microsoft Azure Blob Storage
Filesystem
Use of the filesystem
storage driver is incompatible when deploying DTR in High Availability with multiple replicas.
If you select filesystem
, then the Trusted Registry uses the local disk to
store registry files. This backend has a single, required rootdirectory
parameter which specifies a subdirectory of /var/local/dtr/imagestorage
in
which all registry files are stored. The default value of /local
means the
files are stored in /var/local/dtr/image-storage/local
.
The Trusted Registry stores all its data at this location, so ensure there is adequate space available. To do so, you can run the following commands:
- To analyze the disk usage:
docker exec -it <container_name> bash
then rundf -h
. - To see the file size of your containers, use the
-s
argument ofdocker ps -s
.
Amazon S3
S3 stores data as objects within “buckets” where you read, write, and delete
objects in that container. It too, has a rootdirectory
parameter. If you
select this option, there will be some tasks that you need to first perform on
AWS.
- You must create an S3 bucket, and write down its name and the AWS zone it runs on.
- Determine write permissions for your bucket.
- S3 flavor comes with DEBUG=false by default. If you need to debug, then you need to add
-e DEBUG=True
. - Specify an AWS region, which is dependent on your S3 location, for example, use
-e AWS_REGION=”eu-west-1”
. - Ensure your host time is correct. If your host clock is still running on the main computer, but not on the docker host virtual machine, then you will have time differences. This may cause an issue if you try to authenticate with Amazon web services.
- You will also need your AWS access key and secret key. Learn more about it here.
Conversely, you can further limit what users access in the Trusted Registry when
you use AW to host your Trusted Registry. Instead of using the UI to enter
information, you can create an IAM user
policy
which is a JSON description of the effects, actions, and resources available to
a user. The advantage of using this method instead of configuring through the
Trusted Registry UI is that you can restrict what users can access. You apply
the policy as part of the process of installing the Trusted Registry on AW. To
set a policy through the AWS command line, save the policy into a file, for
example TrustedRegistryUserPerms.json
, and pass it to the put-user-policy AWS
command:
$ aws iam put-user-policy --user-name MyUser --policy-name TrustedRegistryUserPerms --policy-document file://C:\Temp\TrustedRegistryUserPerms.json
You can also set a policy through your AWS console. For more information about setting IAM policies using the command line or the console, review the AWS Overview of IAM Policies article or visit the console Policies page.
The following example describes the minimum permissions set which allows Trusted Registry users to access, push, pull, and delete images.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::<INSERT YOUR BUCKET HERE>"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::<INSERT YOUR BUCKET HERE>/*"
}
]
}
OpenStack Swift
OpenStack Swift, also known as OpenStack Object Storage, is an open source object storage system that is licensed under the Apache 2.0 license. Refer to Swift documentation to get started.
Microsoft Azure
This storage backend uses Microsoft’s Azure Blob storage. Data is stored within a paid Windows Azure storage account. Refer to Microsoft’s Azure documentation which explains how to set up your Storage account.
Configure your Trusted Registry storage backend
Once you select your driver, you need to configure it through the UI or use a YAML file (which is discussed further in this document.)
- From the main Trusted Registry screen, navigate to Settings > Storage.
- Under Storage Backend, use the drop down menu to select your storage. The screen refreshes to reflect your option.
- Enter your configuration settings. If you’re not sure what a particular parameter does, then find your driver from the following headings so that you can see a detailed explanation.
- Click Save. The Trusted Registry restarts so that your changes take effect.
Note: Changing your storage backend requires you to restart the Trusted Registry.
See the Docker Registry storage driver documentation for the full options specific to each driver. Storage drivers can be customized through the Docker Registry storage driver API.
Filesystem settings
The filesystem storage backend has only one setting, the “Storage directory”.
S3 settings
If you select the S3 storage backend, then you need to set “AWS region”, “Bucket name”, “Access Key”, and “Secret Key”.
Azure settings
Set the “Account name”, “Account key”, “Container”, and “Realm” on the Azure storage backend page.
Openstack Swift settings
View the Openstack Swift settings documentation so that you can set up your storage settings: authurl, username, password, container, tenant, tenantid, domain, domainid, insecureskipverify, region, chunksize, and prefix.
Configure using a YAML file
If the previous quick setup options are not sufficient to configure your Registry options, you can upload a YAML file. The schema of this file is identical to that used by the Registry.
There are several benefits to using a YAML file as it can provide an additional level of granularity in defining your storage backend. Advantages include:
- Overriding specific configuration options.
- Overriding the entire configuration file.
- Selecting from the entire list of configuration options.
To configure:
- Navigate to the Trusted Registry UI > Settings > Storage.
- Select Download to get the text based file. It contains a minimum amount of information and you’re going to need additional data based on your driver and business requirements.
- Go here to see the open source YAML file. Copy the sections you need and paste into your
storage.yml
file. Some settings may contradict others, so ensure your choices make sense. - Save the YAML file and return to the UI.
- On the Storage screen, upload the file, review your changes, and click Save.


The Truman Show (1998)
Director: Peter Weir Cast: Jim Carrey, Laura Linney, Noah Emmerich, Natascha McElhone, Holland Taylor, Ed Harris Screenplay: Andrew Niccol Producers: Edward S. Feldman, Andrew Niccol, Scott Rudin, Adam Schroeder Runtime: 103 min. US Distribution: Paramount Rated PG: thematic elements, mild language
By Nathaniel R. Atcheson<EMAIL_ADDRESS>I think the one thing that the general crop of Hollywood films lack entirely is originality. Most of them have a glimpse of originality buried somewhere in them, but it seems to me that the vast majority are padded with so many cliches and formulas that the films feel familiar even if you haven't seen them before. The Truman Show is a film completely original in both its conception and execution, a picture so intelligent and entertaining that I'm certain most will hail it as one of the best films of the decade so far.
But it's not just a well-made movie -- it's an emotionally moving and profoundly direct film that comes across as an all-new experience. I don't recall ever seeing a film that feels like this one. Certainly there are movies out there that attack the television industry (the wonderful Quiz Show, for instance), but none of them do it in a manner like this. The image that director Peter Weir has created is seamless and beautiful, Andrew Niccol's script is subtle and superb, and the acting -- especially from Jim Carrey -- is perfect.
Ideally, you should not know what the film is about before you see it. The trailers all tell you the big secret, though -- Carrey plays Truman Burbank, a man who lives in Seahaven, Florida. What he doesn't know but the rest of the world does is that he's the star of a television show that features every moment of his life. He goes about his daily routine as if it were a script, saying almost the exact same things to his wife, Meryl (Laura Linney), that he did the previous day. He works in a real estate firm, and his best friend's name is Marlon (Noah Emmerich).
We've all considered the possibility that our lives are staged, that we are at the center of the universe, that there might be people in white coats looking at us at all times, that the walls might be illusions and that we're actually in a laboratory somewhere. The Truman Show takes this idea and makes it somewhat pleasant (at least Truman isn't being studied and probed for fun), but it also makes the concept believable. The show was created by Christof (Ed Harris), who is truly wrapped up in the idea that he's created something wonderful, something pure -- much more real than anything you can see in the real world.
The way Weir and Niccol set up the film is ingenious, because you don't know for sure that Truman's at the center of everything (unless you've seen the previews). They drop hints though, such as moments during which we see Truman through the eyes of a strange camera buried in the bushes (we know it's a strange camera because of the oval matte around the central image). Weir allows these hidden cameras to be seen, but all the hints are subtle (Truman's neighbor, for no particular reason, carries around a garbage can at eye level, and the camera in the side of the can is visible, but not obvious). I can't effectively convey the sheer completeness of the way Weir has created this fictional little town, but this is the kind of film that you can watch repeatedly and still see new things with each viewing.
As the film progresses, Truman starts seeing things that baffle him. A stage light falls out of the sky and crashes onto the street in front of his house. He examines it as if it were dropped from an alien ship (a few seconds later he hears a newscast which announces that a passing airplane had dropped some of its parts). Soon, though, he sees things that can't be explained with such ease. He gets so bent on the idea that he rushes into a strange building when no one would expect it, and finds that there are people in a fake elevator eating donuts. Quickly he's thrown out onto the street by security guards.
 The woman was actually an extra who tried to tell Truman that his life was a television show, but ended up failing. Truman's attempts at getting out of the city are not successful, for every time he tries to leave something strange stops him (random forest fires, sudden traffic jams, etc.). He also sees lots of things that are intended to deter him, such as a poster of an airplane under attack from a giant bolt of lightning, with the caption, "IT COULD HAPPEN TO YOU!" in block letters across the top.
Weir's direction is amazing (he should easily be in for the Best Director nomination), and his work is complemented by the wonderfully pleasing aesthetics of Seahaven. Cinematographer Peter Biziou and production designer Dennis Gassner have done splendid work with the look of the film; the imagery, such as in all the scenes with Truman sitting on the beach, is absorbing and immersive, and is matched perfectly with Philip Glass' score (it's worth mentioning that the musical score is always flowing lightly in the background). Even without the script, The Truman Show is simply a pleasure to look at.
With this film, Carrey proves that he can act. But this isn't just a "coming out" performance, or a performance that everyone will adore simply because he doesn't play himself. This is a truly great accomplishment, and deserves to be recognized on higher levels. Carrey is complex and subtle, but still manages to be hilarious in a more realistic way than he has in the past (perhaps the funniest scene is when Meryl forces a product placement for coffee at a moment when Truman is very upset). Carrey never goes overboard, but he's so good at playing this character that I can't imagine anyone else in the role. He has the perfect face and demeanor for the character.
The supporting work is also fantastic, particularly from Ed Harris. Harris is a versatile actor (though he's often typecast as the bad-ass military guy), and here is utterly convincing as a man who truly believes that he is doing a great thing both for Truman and for the entire world.  Natascha McElhone, with her gleaming eyes and soft smile, is simply magnetic to look at (a good casting choice), but she also turns in a great performance as Truman's true love.
I haven't talked about the fact that the film is uproariously funny. This is the best kind of humor -- you have to think before you laugh, and most of the jokes will only strike if you're paying close attention. Some of the humor is over-the-top if you think about it (watch closely the scene in which Truman sees his father dressed as a homeless man), but every attempt at humor in The Truman Show hits with full force.
But this isn't just a comedy. This is a smart and intelligent film that actually takes a satirical view of the television industry. It's also a moving picture, because Truman is so well-written by Niccol and well-acted by Carrey -- he's a likable man, and we want him to be able to succeed and live a real life. The Truman Show is actually quite acidic towards the industry, but the message hardly bogs down the story (note the final shot of the film, though, and then ask yourself what the point of the film is). Above all things, though The Truman Show is original. It's a new kind of film experience, as intelligent as it is funny, and perfectly made as it is perfectly acted. I recommend it unreservedly to all viewers to love great films.
**** out of **** (9/10, A)
Visit FILM PSYCHOSIS at http://www.pyramid.net/natesmovies
Nathaniel R. Atcheson
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: default title: 404 - Page not found permalink: /404.html ---
Sorry, looks like this link is broken. If you think this is a bug, I would really appreciate you letting me know at akhiljalan@berkeley.edu


--- layout: post title: "Academic Publications" date: author: commentsId: --- {% for pub in site.data.pubs %}


Women’s Environmental Network
12 Nov 2019 10:30 - 15:00
The Hub Building Victoria Park London E9 7DD
It’s Autumn and things are cooling down. But, around the world temperatures are going up as our climate changes. At our gathering we’ll talk about climate change, and the power that planting, especially tree planting, has to contribute to tackling the problem. We’ll explore some of the beautiful trees of Victoria Park, discuss how you can plant and care for trees near you, and much more! We’ll have our usual free and delicious lunch. Plus, it’s a great chance to meet other people from the wonderful Tower Hamlets Food Growing Network.


Welcome to Our Student System
University
Courses
Forum
Help
First Name
Last Name
Score
Ivan
Ivanov
4.54
Petar
Petrov
4.31
Kiril
Kirov
4.62


IntelliJ is an open source tool version of IntelliJ IDEA for professionals developed by Jet Brains
Cascading Style Sheets is a style sheet language used for describing the presentation of a document written in a markup language like HTML.


Preparation time
less than 30 mins
Cooking time
over 2 hours
Serves
Serves 4
For the consommé, place all the consommé ingredients into a large stockpot and cover with at least 1.75 litres/3 pints of cold water. Place over a medium heat and bring to the boil. Skim off any scum or grease that rises to the surface with a slotted spoon. Lower the heat and simmer, uncovered, for about two hours until reduced by nearly two-thirds - you'll need 450 ml/¾ pint of stock in total.
Strain the stock through a fine sieve into a large jug and ideally leave to cool overnight so that you can scrape off any fat that settles on top.
For the stew, preheat the oven to 200C/400F/Gas 6.
Season the racks of lamb with salt and freshly ground black pepper and place in a small roasting tin. Roast in the oven for 20-25 minutes, or a little longer, depending on how pink you like your lamb. Remove from the oven and set aside in a warm place to rest for 10-15 minutes.
Meanwhile, peel and shape the baby carrots and baby potatoes into neat barrels. Place them into a clean saucepan with the reduced lamb stock and diced onion. Place on the heat and bring to a simmer.
Cook the vegetables gently for 10-15 minutes, or until the potatoes are completely tender but are still holding their shape. Season with salt and freshly ground black pepper.
Heat the olive oil in a frying pan, add the leek and sauté for 3-4 minutes until softened but not coloured. Season with salt and freshly ground black pepper.
To serve, carve the rested racks of lamb into chops. Put the leek julienne in the centre of each warmed wide-rimmed serving bowl and spoon around the Irish stew consommé. Arrange the lamb chops on top of the leeks and garnish with the rosemary sprigs.


|
Loading Incident
Load Succeeded
Load Failed
|
| Critical Fireground Factors: | |
| Rescue: | |
| Fire Control: | |
| Property/People: |
|
| Firefighter Safety: |
| Immediates: | |
| Delayed: | |
| Total Number of PT: |
| {{reportAction | timeStringForIncident}} | {{reportAction.text}} |
| {{reportAction | timeStringForIncident}} | {{reportAction.text}} |
Incident Number
Address or Cross Streets:


SUBURBIA (1997) A Film Review by Ted Prigge Copyright 1997 Ted Prigge
Director: Richard Linklater Writer: Eric Bogosian Starring: Giovanni Ribissi, Steve Zahn, Amie Carey, Nicky Katt, Jayce Bartok, Parker Posey, Dina Spybey, Ajay Naidu, Samia Shoaib
Richard Linklater's fourth film, following "Slacker," "Dazed and Confused," and "Before Sunrise," is much like his previous efforts - they all depict slackers in a lovable fashion, allowing them to talk; all take place within a day (mostly night); and all are good. However, "subUrbia" takes a whole new stance on the whole slacker-brand idealism - it's just a waste of life.
The characters in this film hang out at the Cicle-A gas station, the place where people fuel up and then go on with their lives.  Of course, that's all they do is talk, but never act on them unless they absolutely have to. Linklater has always viewed these guys as idealistic in that bad way, but he has never presented it in this kind of honest and dark fashion.
The pretty-much-understood protagonist is Jeff (Giovanni Ribissi, the first drummer in "That Thing You Do!" who broke his arm), a clueless slacker who has no clue what he wants to do and feels content in the fact that he knows this. He is dating the multi-color-haired Sooze (Amy Carey), an also clueless future performance artist (who's bit "Burger Manifesto Part 1" is classic) who wants to move to New York, much to the dismay of Jeff, but is pretty much set in just saying "I'll get there someday."
There's also Sooze's best bud, Bee Bee (Dina Spybey, on "Men Behaving Badly" now), who has just gotten out of rehab, but is totally shaky and feels isolated from everybody. She gets some consolation from Jeff and from Buff (Steve Zahn, also from "That Thing You Do!," but in a much bigger role), a hyperkinetic jokester who seems to be eternally drunk and on a combination of hash and speed, causing him to always be attracting attention.
Then there's Tim (Nicky Katt, one of the slain rednecks in "A Time to Kill"). Tim was in the Air Force but was honorably discharged so he can work on his alcoholism and nihilation. He's the creepiest and most dangerous of them all because he presents the fact that the American dream is dead and becomes the big annoyance for everyone by sadistically preying on every single character's insecurities.
As far as the American Dream goes, it's represented by two Pakistanis who own the Circle-A (the first time I've seen a Pakistani owning American property in a non-comical role). They are the married young couple, Nazeer and Pakeesa (Ajay Naidu and Samia Shoaib, respectively), and Ajay has two years left before he has completed his engineering degree.  Ajay also utters the devastating words that wrap up the film at the end.
There is no real plot, just talking, which just orchestrates that these people have nothing to do but talk. The only kind of narrativeness comes in the form of a guy named Pony (Jayce Bartok), who was their friend back in the day but became a big rock-star. He's not presented as a jerk or anything, but as a guy who has actually taken the time to work hard and, for some odd reason, wants to just lay back and do nothing for a night. He's rather clueless himself - at one point he meanders about a subject, just as an excuse to have them tell him to play his music. He whines about how his life is hard and how it's turned into just "Hotel, concert, airport," and etc, etc, whatever and ever amen.
 The suburbia of the title refers to a kind of enclosed prison where they don't have to care about anything, but always have a quick-e-mart of some kind to hang out at and do nothing.
The film is wonderfully acted, with standouts by Ribissi, Zahn, and Katt. But the whole cast works wonderfully. We even get Parker Posey (who's been in, like, 30 films in 3 years) as Pony's journalist or something who's just along for the ride so she can get laid, no matter what slacker it is. The cast has a lot to say, and they all give the dialogue in the most human manner and all play off eachother wonderfully. I haven't seen large-group chemistry like this since..."Dazed and Confused."
The writing is also very well done. Eric Bosogian has a knack for writing great dialogue, dialogue that is speakable and fun to listen to. There's a ton of great lines and jokes, and all the characters are cleverly constructed. But some of the lines are very satirical and don't seem like a normal person would say them. But this isn't reality anyway. It's a surreal kind of landscape of nihilism and self-destruction.
While Bogosian paints his characters as all being schmucks (except for the two Pakistanis), Linklater presents them in a loveable vein, causing them to kind of mirror us. It's some of us on the screen, but we would only say some of the stuff if we're really being honest. It somehow works.
And Linklater always seems to find the perfect everything for a scene. The whole film doesn't take place at the Circle-A; it ventures out everywhere in the bleak suburbia. The mood and tone are dark and foreboding, like you know something bad is going to happen. He carefully constucts everything, almost making it like stalled time for the characters to waste their lives. It's never boring, kind of like listening to Spalding Gray talk, but more satirical (yet just as rewarding).
"subUrbia" is a very fantastically done film that not only proves that Rick Linklater is one of the finest young American directors, but also that we idealistic slackers who think if we think long enough, we'll suddenly come out kosher dill are all just wasting our lives.
MY RATING (out of 5): ****
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


|
Vkx
0.1.0
Vulkan C++ extensions
|
An extension of vk::Buffer that supports ownership of the memory. More...
#include <Vkx/Buffer.h>
Public Member Functions | |
| Buffer ()=default | |
| Constructor. | |
| Buffer (std::shared_ptr< Device > device, size_t size, vk::BufferUsageFlags usage, vk::MemoryPropertyFlags memoryProperties, vk::SharingMode sharingMode=vk::SharingMode::eExclusive) | |
| Constructor. More... | |
| Buffer (Buffer &&src) | |
| Move constructor. More... | |
| virtual | ~Buffer () |
| Destructor. | |
| Buffer & | operator= (Buffer &&rhs) |
| Move-assignment operator. More... | |
| operator vk::Buffer () const | |
| Implicitly converts into a vk::Buffer. | |
| vk::DeviceMemory | allocation () const |
| Returns the DeviceMemory handle. | |
Protected Attributes | |
| std::shared_ptr< Device > | device_ |
| Device associated with this buffer. | |
| vk::DeviceMemory | allocation_ |
| Buffer allocation | |
| vk::Buffer | buffer_ |
| Vulkan buffer. | |
An extension of vk::Buffer that supports ownership of the memory.
The buffer and its memory allocation (if any) are destroyed automatically when this object is destroyed. This class can be used as a base class.
| Vkx::Buffer::Buffer | ( | std::shared_ptr< Device > | device, |
| size_t | size, | ||
| vk::BufferUsageFlags | usage, | ||
| vk::MemoryPropertyFlags | memoryProperties, | ||
| vk::SharingMode | sharingMode = vk::SharingMode::eExclusive |
||
| ) |
Constructor.
| device | Logical device associated with the buffer |
| size | Nominal size of the buffer |
| usage | Usage flags |
| sharingMode | Sharing mode |
| memoryProperties | Memory properties |
| sharingMode | Sharing mode flag (default: eExclusive) |
| Vkx::Buffer::Buffer | ( | Buffer && | src | ) |
Move constructor.
| src | Move source |


Reports inner classes of
interface
classes. Some coding standards discourage such classes. Enumeration classes and annotation classes are not reported by this inspection.
Powered by InspectionGadgets


|
#include <mindsensors-ps2ctrl-v4.h>
Data Fields | |
| ubyte | left1Btn |
| ubyte | left2Btn |
| ubyte | right1Btn |
| ubyte | rigth2Btn |
| ubyte | joypadLeft |
| ubyte | joypadDown |
| ubyte | joypadRight |
| ubyte | joypadUp |
| ubyte | triangleBtn |
| ubyte | squareBtn |
| ubyte | circleBtn |
| ubyte | crossBtn |
| ubyte | joystickLeftBtn |
| ubyte | joystickRightBtn |
| ubyte | selectBtn |
| ubyte | startBtn |
| int | joystickLeft_x |
| int | joystickLeft_y |
| int | joystickRight_x |
| int | joystickRight_y |
Definition at line 81 of file mindsensors-ps2ctrl-v4.h.
| ubyte circleBtn |
Circle button button value
Definition at line 94 of file mindsensors-ps2ctrl-v4.h.
| ubyte crossBtn |
Cross button button value
Definition at line 95 of file mindsensors-ps2ctrl-v4.h.
| ubyte joypadDown |
Joypad down button value
Definition at line 89 of file mindsensors-ps2ctrl-v4.h.
| ubyte joypadLeft |
Joypad left button value
Definition at line 88 of file mindsensors-ps2ctrl-v4.h.
| ubyte joypadRight |
Joypad right button value
Definition at line 90 of file mindsensors-ps2ctrl-v4.h.
| ubyte joypadUp |
Joypad up button value
Definition at line 91 of file mindsensors-ps2ctrl-v4.h.
| int joystickLeft_x |
Left joystick X value, scaled from 0 to 100
Definition at line 100 of file mindsensors-ps2ctrl-v4.h.
| int joystickLeft_y |
Left joystick X value, scaled from 0 to 100
Definition at line 101 of file mindsensors-ps2ctrl-v4.h.
| ubyte joystickLeftBtn |
Left joystick button value
Definition at line 96 of file mindsensors-ps2ctrl-v4.h.
| int joystickRight_x |
Left joystick X value, scaled from 0 to 100
Definition at line 102 of file mindsensors-ps2ctrl-v4.h.
| int joystickRight_y |
Left joystick X value, scaled from 0 to 100
Definition at line 103 of file mindsensors-ps2ctrl-v4.h.
| ubyte joystickRightBtn |
Right joystick button value
Definition at line 97 of file mindsensors-ps2ctrl-v4.h.
| ubyte left1Btn |
L1 button value
Definition at line 84 of file mindsensors-ps2ctrl-v4.h.
| ubyte left2Btn |
L2 button value
Definition at line 85 of file mindsensors-ps2ctrl-v4.h.
| ubyte right1Btn |
R1 button value
Definition at line 86 of file mindsensors-ps2ctrl-v4.h.
| ubyte rigth2Btn |
R2 button value
Definition at line 87 of file mindsensors-ps2ctrl-v4.h.
| ubyte selectBtn |
Select button value
Definition at line 98 of file mindsensors-ps2ctrl-v4.h.
| ubyte squareBtn |
Square button button value
Definition at line 93 of file mindsensors-ps2ctrl-v4.h.
| ubyte startBtn |
Start button value
Definition at line 99 of file mindsensors-ps2ctrl-v4.h.
| ubyte triangleBtn |
Triangle button button value
Definition at line 92 of file mindsensors-ps2ctrl-v4.h.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Makes 20 of each variety
Dietary
These are my favourite biscuits to make with my grandchildren – three classic biscuit flavours from just one batch of dough.
Preheat the oven to 180C/160C Fan/Gas 4. Line three baking trays with baking paper.
To make the biscuit dough, measure the butter, sugar, flour and semolina into the bowl of an electric food mixer and mix until a soft dough is formed, taking care not to over-beat. Alternatively, add the butter and sugar to a mixing bowl and beat with a wooden spoon until soft and creamy, then stir in the flour and semolina. Divide the dough evenly into three and dust your work surface with flour before kneading each batch.
For the chocolate chip biscuits, knead the chocolate chips into one portion of dough, shape into 20 balls and arrange, spaced well apart, on one of the baking trays. Press down with the back of a fork into discs about 5cm/2in in diameter and bake in the oven for 10 minutes, or until golden-brown.
For the lemon biscuits, knead the lemon zest into the second portion of dough. Roll into a long sausage shape (about 20cm/8in long) and roll in the demerara sugar. Wrap in cling film and leave in the freezer for about 30 minutes, or until firm and nearly frozen. Slice into 20 even rounds, each about 1cm/½in thick. Arrange on a baking tray, spaced well apart, and bake for about 10 minutes, or until pale golden-brown.
For the almond biscuits, knead the almond extract into the remaining portion of dough, along with most of the flaked almonds.  Place a few almonds on top of each ball of dough and press flat with the back of a fork into discs about 5cm/2in in diameter. Bake for about 10 minutes, or until golden-brown.


Layout
A brief overview of the challenges that web designers and front-end web developers face when laying out content, including designing for multiple screen sizes and choosing between different CSS positioning and display techniques.
When it comes to layout, the primary difference between designing for the web vs. designing for print is the size of the canvas: for print, the dimensions are fixed and known; for the web, the dimensions are forever changing and unknown. Another, equally important difference is the content: for print, the content is fixed and known; for the web, the content can change and could be unknown to the designer. The two mediums are fundamentally different.
So how do you design a layout for so many unknowns? Web designers need to think differently by shifting their mindsets to plan for the unknown when designing web-based layouts. Web designers can still utilize the core principles of print-based layout (e.g. grid systems, strong typography, etc.), but must also be able plan for and adapt to the many different scenarios that users might interact with their designs (e.g. how will this layout render on a large monitor vs. a small mobile phone, what should the content order/hierarchy be?) and the many constraints of the web (e.g. how will this text wrap? how can I fix my widows? how can I control the number of characters per line?)
The good news is that there are emerging techniques and strategies that have evolved over the years to help aid web designers and front-end web developers. There are several different content strategies and methodologies (e.g. a "mobile first" content strategy) that can help to prioritize content, different front-end approaches (e.g. a "mobile first" responsive design system using media queries set at breakpoints) that can help to address the many different screen sizes, and emerging tools and technologies (e.g. flexbox and CSS grid) that can help to enable and empower designers to create more interesting and robust layouts for the web with less concerns and worries for the many limitations and constraints inherent to the medium of the web.
Below is a collection of known strategies, best practices, and techniques for layout that many web designers and front-end designers have come to embrace over the years.
- Responsive Design (designing for different preset screen sizes that to CSS media queries)
- Predefined breakpoints (e.g. mobile, tablet, and desktop)
- Reusable containers or "wrappers" (designed to provide control over the overall layout at target breakpoints)
- Responsive typography (scaling type for different screen sizes to increase legibility and readability)
- Reusable Grid Systems (defining a global grid system with reusable, semantic classnames for an easy content markup workflow)
- Examples include: a 12-column grid, 16-column gird, custom grids, one-half/one-third/one-fourth columns, etc
- Flexbox and CSS Grid (two powerful CSS layout modules that can be used in many different ways to provide more layout control; the days of float-based layouts and clearfixes are over and we can finally align items vertically with ease.)
- Example: center align anything with display: flex; align-content: center; justify-content: center;
- Example: header with logo left and nav right with display: flex; justify-content: space-between;
- Box-sizing: border-box; (a relatively simple css property setting that has relieved many headaches thanks to no longer having to include padding and border as part of an element's rendered width)
Code Samples:
Box-sizing: border-box;
[gist https://gist.github.com/kccnma/77d7132cae4fe9a0c54075ec21014b65 /]
Example of a simple, responsive reusable container
[gist https://gist.github.com/kccnma/6d2169ee66fe188dc5da1ee342317b79 /]
Example of mobile-first media queries with 2 breakpoints to target 3 screen sizes (small/mobile, medium/table, large/desktop+)
[gist https://gist.github.com/kccnma/2bfe16c01e98015fbb72d2419b46c53e /]
Example of a responsive typography setup (body font of 14px for small screens scaling to 18px for extra large screens)
[gist https://gist.github.com/kccnma/e32d852b0ff8c4533916ecdf871bb77b /]
Example of CSS for responsive images
[gist https://gist.github.com/kccnma/68a6ae469f73b02ffa535c2edda701fe /]
Example of HTML markup with semantic classnames for a global, reusable grid system
[gist https://gist.github.com/kccnma/3b15d28234d9c2df4a67141a86f28b5e /]
Example of Flexbox CSS (SCSS) used for a global, reusable, semantic grid system
[gist https://gist.github.com/kccnma/2cb16ce8fed1246174eba8cdd8d32e44 /]
Exercises:
Try using flexbox for vertical (and horizontal) centering
[codepen_embed height=”265” theme_id=”0” slug_hash=”VEKKvL” default_tab=”css,result” user=”kccnma”]See the Pen Flexbox: Centered Block (simplified) by kccnma (@kccnma) on CodePen.[/codepen_embed]
Try using flexbox to setup a global, semantic grid system designed for responsive web layouts
[codepen_embed height=”681” theme_id=”0” slug_hash=”NORrOp” default_tab=”result” user=”kccnma”]See the Pen Reusable Semantic Grid System for Page Layout: Using Flexbox by kccnma (@kccnma) on CodePen.[/codepen_embed]
Related Resources and Reading
- Blog Posts/Articles:
- CSS-Tricks Guides:
- Rachel Andrew's 4-part Flexbox Articles on Smashing Magazine:
- Rachel Andrew's presentation Your CSS Layout Toolkit for 2019
- Jen Simmon's presentation Designing with Grid
- Jen Simmon's post The benefits of learning how to code layouts with CSS
- Jen Simmon's post Six Layout Myths Busted
- Mark Boulton's post Five simple steps to designing grid systems
- Videos:
- CSS Grid-Specific:
- Flexbox-Specific:
- Animated Flexbox Codepen by Blake Bowen
- Fun
Go Further
- Experiment with Flexbox and CSS Grid to create as many different layouts as you can (see below for specific examples to try)
- If you need to add support for older browsers, try creating a more robust layout that uses CSS Grid with a Flexbox fallback
- Example: A CSS Grid w/ a Flexbox Fallback
- Create your own front-end layout system with all of the bells and whistles
- Fully Responsive
- Media Queries with defined target breakpoints
- Responsive typography (small font size for small screens, larger type on bug screens)
- A reusable container that scales from fluid (small screens) to fixed with (on large screens)
- Support for responsive media (e.g. max-width: auto for images)
- A Reusable Grids
- A 12 Column Grid
- A Semantic Grid (w/ one half, one third, one fourth columns, etc)
- A Flexible Grid (w/ no preset column classes)
- Fully Responsive
- Recreate classic, well known and commonly used layouts
- Site layouts (structural layouts)
- Header at the top, auto-filled main content area in the middle, footer at the bottom (scrollable)
- Fixed header at the top, scrollable main content area, fixed footer at the bottom
- Header and navigation layouts
- Header with logo left, nav right
- Header with centered logo and centered nav underneath
- Header with left-side drawer nav
- Header with right-side drawer nav
- Content layouts:
- Long-scrolling vertical page with stacked sections
- Alternating content sections (image left, text right > text left, image right > centered image, centered text > etc...)
- Media/Post object list (stacked posts with featured images left, text right)
- Grid of Wrapping Items (e.g. for a portfolio grid or grid view of products)
- Left sidebar, main content right
- Right sidebar, main content left
- Two sidebars (left and right), main content centered
- Fixed sidebar, scrollable main content
- Site layouts (structural layouts)
- Bespoke, custom layouts
- Be inspired, take risks, and have fun pushing the boundaries of layout on the web!
Author Notes
This was written specifically to help aspiring web designers as they aim to:
- Apply best practices composition and typography in the context of layout for web sites and user interfaces.


|
Choose a number shown on one of the dice in the bottom left corner of the screen to move along across the board. If another Toon chooses the same number, neither Toon moves. Certain spaces on the board draw special cards when a Toon lands on them. Sometimes the cards are good news for you (you win extra jellybeans) sometimes they are not-so-good news (back three spaces). Think carefully before choosing a number that might put you on a card: itís always a gamble!
The first Toon to reach the finish line wins the race game, and gets extra jellybeans.
|
|
| |
|
Tap the right and left arrows keys alternately to keep the green meter at the same level as the red marker in the power meter. If you do this, you drag the Cog toward the water. If you donít, the Cog drags you!
When youíre playing with other Toons, everyone wins the same number of jellybeans as everyone else on that team at the end of the game, based on how well the team did.
|
|
| |
|


Step 1:
Start with updating the distro
command sudo apt-get update
Step 2:
Let's add users to the www-data group
command sudo usermod -a -G www-data www-data
Step 3:
Next we'll install all the packages you will need, this will take some time
commandsudo apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-common php5-cgi sqlite3 php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache varnish
Step 4:
This command will create and walk you through writing the basic SSL certificate
command sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key
Step 5:
Now change the privileges of the files you just referenced. This lets the file owner read and write to the file and is required for the next step.
command
sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key
Step 6:
Next, we’ll change the nginx default config file. You can copy and paste the text at this link (or copy the file).
command sudo nano /etc/nginx/sites-available/default
You will need to change one thing in this file. Replace the following with your raspberry pi’s ip address.
10.0.0.ip; #your raspberry pi's ip here
Note: If you’d like to access your server from somewhere outside your local network use your Global IP instead.
Step 7:
Now, we’ll edit the php.ini files to allow files of 2GB
command sudo nano /etc/php5/fpm/php.ini
search for upload_max_filesize
and set it to 2000M
search for post_max_size
and set it to 2000M
Step 8:
Next make the following two changes to the www.conf and dphys-swapfile file
command sudo nano /etc/php5/fpm/pool.d/www.conf
Change listen = /var/run/php5-fpm.sock
to listen = <IP_ADDRESS>:9000
command sudo nano /etc/dphys-swapfile
Change CONF_SWAPSIZE=100
to CONF_SWAPSIZE=512
Step 9:
Reboot the pi
command sudo reboot
Step 10:
Download and install owncloud, the server software, then clean up
command sudo mkdir -p /var/www/owncloud
command sudo wget https://download.owncloud.org/community/owncloud-8.0.2.tar.bz2
command sudo tar xvf owncloud-8.0.2.tar.bz2
command sudo mv owncloud/ /var/www/
command sudo chown -R www-data:www-data /var/www
command rm -rf owncloud owncloud-8.0.2.tar.bz2
Step 11:
Now plug in your USB storage or drive.
Some of the next steps will vary depending on the USB file system of your device. This tutorial will include the steps for using FAT32 type file systems. Note: You may need to download the drivers for other filesystems, such as exfat, ntfs, etc…
Step 12:
Make a directory on your pi where the drive will be mounted, and mount the drive (if there is only one drive it will likely be located at /dev/sda1 as indicated below)
command sudo mkdir /media/owncloud
command sudo mount -t vfat -o uid=1000,gid=1000,umask=007 /dev/sda1 /media/owncloud
Step 13:
Next you will be editing the fstab file. If this is modified wrong the pi will boot into emergency mode, so first we’ll back it up
command sudo cp /etc/fstab /etc/fstab.backup
command sudo nano /etc/fstab
Add the following after the last row /dev/sda1 /media/owncloud vfat uid=1000,gid=1000,umask=007 0 0
This will mount the drive automatically on startup. Note: The pi will boot into emergency mode if it cannot find the disk added to fstab, so use caution. You can always edit fstab, even in emergency mode.
Step 14:
Now we’ll wrap up and edit two local file to allow 2GB file sizes. Make the changes as listed
command sudo nano .htaccess
Set Php_value upload_max_filesize
to 2000M
Set Php_value post_max_size
to 2000M
Set Php_value memory_limit
to 2000M
command sudo nano .user.ini
Set upload_max_filesize
to 2000M
Set post_max_size
to 2000M
Set memory_limit
to 2000M
Step 15:
From a computer on the same network go to the pi’s ip address in the browser and make an admin ownCloud account.
Your Network Attached Storage device is now working!


calibredb
Tool to manipulate the your e-book database.
Part of the Calibre e-book library.
More information: home page
- List e-books in the library with additional information:
calibredb list
- Search for e-books displaying additional information:
calibredb list --search search_term
- Search for just ids of e-books:
calibredb search search_term
- Add one or more e-books to the library:
calibredb add file1 file2 …
- Recursively add all e-books under a directory to the library:
calibredb add -r path/to/directory
- Remove one or more e-books from the library. You need the e-book IDs (see above):
calibredb remove id1 id2 …


To tell this trip report I have to start a few months back.
This fall I met a girl and fell deeply in love. She was a 'drug nerd' and 'psychonaut' like myself and the best damn girl i've ever met. Let alone been with.
About 5 weeks ago we where peaking on 5meodipt when out of nowhere she tells me she is breaking up with me. This experience was so traumatic that I didn't eat or sleep for 3 days after that.  I contemplate horrible things like suicide as I delve through the depths of lonely despair. I have suffered horrible dreams about her which leave me in a pool of sweat and unable to sleep. I usually am rather happy but nothing could help me. My heart was smashed into pieces.
Last night I was with some friends in my room and decided that maybe I would try a hit of some fresh dried salvia leaf to sort of settle my anxiety and racing heart. I find lower doses very calming. I was a bit stoned from some cannabis we had smoked earlier.
I took one small leaf and crumbled it up. Placed it in the bowl. It was a small amount. I got a fairly small hit. Seems since the weather has warmed my plant’s potency has increased.
I said 'Maria de pastora show me the true path through the chaos,' and took a moment to say thanks to the salvia spirit. I laid back on the bed holding in the small hit. One friend we'll call K was on the couch. Two other friends we'll call A and B where outside having a smoke. I had easily finished the hit and didn't expect much to happen.
I laid back and closed my eyes as I exhaled it seemed like the spirit drifted down into me. There was a really intense pain on the left side of my back it was very uncomfortable. Lady Salvia told me to do this thing which I can only describe as pushing my consciousness down. As long as I was doing this she was going to help heal me. But it was up to me to keep doing that. It was like I was pushing down so I would be lower then this blanket of salvia energy. That way the energy could cover my entire body and heal me.
Then she starts saying to me over and over 'you’re healed.'
' you’re healed you’re healed you’re healed.' she says.
'Your broken heart is no longer making you sad for it is no longer broken.' she said next.
'Your lack of job and sitting around doing nothing all day is the cause of your depression.' She assured me of this and that my broken heart would no longer be a factor.
Then my friend k turned the Simpsons on. I realized that the intense pain in my left side was going away fast. “You’re healed you’re healed you’re healed.' Over and over she says. At this point the pain in my heart and on my left side vanish. It seemed timed with the Simpsons being turned on. I told K he could turn on Simpsons when it started since it is rather psychedelic.
A calm sense of blissful happiness set in. I actually felt content. Like my old self. A feeling which I have not felt in some 5 hellish weeks. Right as the pain stopped and the bliss set in A and B walked in and it seemed perfectly timed with the end of the healing process. Like salvia had the divine plan to heal me and everything was going perfectly.
This content glow lasted the rest of the night. I managed to watch the Simpsons and pay attention. I haven't been able to concentrate for some time. My ex would just race around my head no matter what I was to do.
This morning I feel better. I think my heart is repaired and my ex won't be the cause of my troubles any longer. Lady salvia has healed me and shown me 'the true path through the chaos.' For our symbiotic relationship I am ever grateful.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


from .strategy import Strategy
import submodlib
[docs]class SCG(Strategy):
"""
This strategy implements the Submodular Conditional Gain (SCG) selection paradigm discuss in the paper
SIMILAR: Submodular Information Measures Based Active Learning In Realistic Scenarios :footcite:`kothawade2021similar`. In this selection
paradigm, points from the unlabeled dataset are chosen in such a way that the submodular conditional gain
between this set of points and a provided private set is maximized. Doing so allows a practitioner to select
points from an unlabeled set that are dissimilar to points provided in the private set.
These submodular conditional gain functions rely on formulating embeddings for the points in the unlabeled set
and the private set. Once these embeddings are formed, similarity kernels are formed from these
embeddings based on a similarity metric. Once these similarity kernels are formed, they are used in computing the value
of each submodular conditional gain function. Hence, common techniques for submodular maximization subject to a
cardinality constraint can be used, such as the naive greedy algorithm, the lazy greedy algorithm, and so forth.
In this framework, we set the cardinality constraint to be the active learning selection budget; hence, a list of
indices with a total length less than or equal to this cardinality constraint will be returned. Depending on the
maximization configuration, one can ensure that the length of this list will be equal to the cardinality constraint.
Currently, three submodular conditional gain functions are implemented: 'flcg', 'gccg', and 'logdetcg'. Each
function is obtained by applying the definition of a submodular conditional gain function using common
submodular functions. For more information-theoretic discussion, consider referring to the paper Submodular Combinatorial
Information Measures with Applications in Machine Learning :footcite:`iyer2021submodular`.
Parameters
----------
labeled_dataset: torch.utils.data.Dataset
The labeled dataset to be used in this strategy. For the purposes of selection, the labeled dataset is not used,
but it is provided to fit the common framework of the Strategy superclass.
unlabeled_dataset: torch.utils.data.Dataset
The unlabeled dataset to be used in this strategy. It is used in the selection process as described above.
Importantly, the unlabeled dataset must return only a data Tensor; if indexing the unlabeled dataset returns a tuple of
more than one component, unexpected behavior will most likely occur.
private_dataset: torch.utils.data.Dataset
The private dataset to be used in this strategy. It is used in the selection process as described above. Notably,
the private dataset should be labeled; hence, indexing the query dataset should return a data/label pair. This is
done in this fashion to allow for gradient embeddings.
net: torch.nn.Module
The neural network model to use for embeddings and predictions. Notably, all embeddings typically come from extracted
features from this network or from gradient embeddings based on the loss, which can be based on hypothesized gradients
or on true gradients (depending on the availability of the label).
nclasses: int
The number of classes being predicted by the neural network.
args: dict
A dictionary containing many configurable settings for this strategy. Each key-value pair is described below:
- **batch_size**: The batch size used internally for torch.utils.data.DataLoader objects. (int, optional)
- **device**: The device to be used for computation. PyTorch constructs are transferred to this device. Usually is one of 'cuda' or 'cpu'. (string, optional)
- **loss**: The loss function to be used in computations. (typing.Callable[[torch.Tensor, torch.Tensor], torch.Tensor], optional)
- **scg_function**: The submodular conditional gain function to use in optimization. Must be one of 'flcg', 'gccg', or 'logdetcg'. (string)
- **optimizer**: The optimizer to use for submodular maximization. Can be one of 'NaiveGreedy', 'StochasticGreedy', 'LazyGreedy' and 'LazierThanLazyGreedy'. (string, optional)
- **metric**: The similarity metric to use for similarity kernel computation. This can be either 'cosine' or 'euclidean'. (string)
- **nu**: A parameter that governs the hardness of the privacy constraint. (float)
- **embedding_type**: The type of embedding to compute for similarity kernel computation. This can be either 'gradients' or 'features'. (string)
- **gradType**: When 'embedding_type' is 'gradients', this defines the type of gradient to use. 'bias' creates gradients from the loss function with respect to the biases outputted by the model. 'linear' creates gradients from the loss function with respect to the last linear layer features. 'bias_linear' creates gradients from the loss function using both. (string)
- **layer_name**: When 'embedding_type' is 'features', this defines the layer within the neural network that is used to extract feature embeddings. Namely, this argument must be the name of a module used in the forward() computation of the model. (string)
- **stopIfZeroGain**: Controls if the optimizer should cease maximization if there is zero gain in the submodular objective. (bool)
- **stopIfNegativeGain**: Controls if the optimizer should cease maximization if there is negative gain in the submodular objective. (bool)
- **verbose**: Gives a more verbose output when calling select() when True. (bool)
"""
def __init__(self, labeled_dataset, unlabeled_dataset, private_dataset, net, nclasses, args={}): #
super(SCG, self).__init__(labeled_dataset, unlabeled_dataset, net, nclasses, args)
self.private_dataset = private_dataset
[docs] def select(self, budget):
"""
Selects next set of points
Parameters
----------
budget: int
Number of data points to select for labeling
Returns
----------
idxs: list
List of selected data point indices with respect to unlabeled_dataset
"""
self.model.eval()
#Get hyperparameters from args dict
optimizer = self.args['optimizer'] if 'optimizer' in self.args else 'NaiveGreedy'
metric = self.args['metric'] if 'metric' in self.args else 'cosine'
nu = self.args['nu'] if 'nu' in self.args else 1
gradType = self.args['gradType'] if 'gradType' in self.args else "bias_linear"
stopIfZeroGain = self.args['stopIfZeroGain'] if 'stopIfZeroGain' in self.args else False
stopIfNegativeGain = self.args['stopIfNegativeGain'] if 'stopIfNegativeGain' in self.args else False
verbose = self.args['verbose'] if 'verbose' in self.args else False
embedding_type = self.args['embedding_type'] if 'embedding_type' in self.args else "gradients"
if(embedding_type=="features"):
layer_name = self.args['layer_name'] if 'layer_name' in self.args else "avgpool"
#Compute Embeddings
if(embedding_type == "gradients"):
unlabeled_data_embedding = self.get_grad_embedding(self.unlabeled_dataset, True, gradType)
private_embedding = self.get_grad_embedding(self.private_dataset, False, gradType)
elif(embedding_type == "features"):
unlabeled_data_embedding = self.get_feature_embedding(self.unlabeled_dataset, True, layer_name)
private_embedding = self.get_feature_embedding(self.private_dataset, False, layer_name)
else:
raise ValueError("Provided representation must be one of gradients or features")
#Compute image-image kernel
data_sijs = submodlib.helper.create_kernel(X=unlabeled_data_embedding.cpu().numpy(), metric=metric, method="sklearn")
#Compute private-private kernel
if(self.args['scg_function']=='logdetcg'):
private_private_sijs = submodlib.helper.create_kernel(X=private_embedding.cpu().numpy(), metric=metric, method="sklearn")
#Compute image-private kernel
private_sijs = submodlib.helper.create_kernel(X=private_embedding.cpu().numpy(), X_rep=unlabeled_data_embedding.cpu().numpy(), metric=metric, method="sklearn")
if(self.args['scg_function']=='flcg'):
obj = submodlib.FacilityLocationConditionalGainFunction(n=unlabeled_data_embedding.shape[0],
num_privates=private_embedding.shape[0],
data_sijs=data_sijs,
private_sijs=private_sijs,
privacyHardness=nu)
if(self.args['scg_function']=='gccg'):
lambdaVal = self.args['lambdaVal'] if 'lambdaVal' in self.args else 1
obj = submodlib.GraphCutConditionalGainFunction(n=unlabeled_data_embedding.shape[0],
num_privates=private_embedding.shape[0],
lambdaVal=lambdaVal,
data_sijs=data_sijs,
private_sijs=private_sijs,
privacyHardness=nu)
if(self.args['scg_function']=='logdetcg'):
lambdaVal = self.args['lambdaVal'] if 'lambdaVal' in self.args else 1
obj = submodlib.LogDeterminantConditionalGainFunction(n=unlabeled_data_embedding.shape[0],
num_privates=private_embedding.shape[0],
lambdaVal=lambdaVal,
data_sijs=data_sijs,
private_sijs=private_sijs,
private_private_sijs=private_private_sijs,
privacyHardness=nu)
greedyList = obj.maximize(budget=budget,optimizer=optimizer, stopIfZeroGain=stopIfZeroGain,
stopIfNegativeGain=stopIfNegativeGain, verbose=verbose)
greedyIndices = [x[0] for x in greedyList]
return greedyIndices


EaselJS Using HitTest
Synopsis: Using the DisplayObject.hitTest method with globalToLocal and localToLocal.
Topics: hitTest, globalToLocal, localToLocal, hit detection
Target: EaselJS v0.8.1
This tutorial is part of the EaselJS GitHub repository.
Check out the repository for more tutorials and a handful of helpful samples.
hitTest
The hitTest
method checks a specified point in a display object and returns true if that point is not fully transparent (ie. if it will draw to that pixel). This can be used for checking if a specific object is under the mouse and hit detection.
The following demo calls circle.hitTest(stage.mouseX, stage.mouseY)
to determine if the mouse is over the red circle.
This simple implementation works fine when the circle hasn't been moved or transformed, but hitTest
expects the position passed to it to be in the local coordinate space. The stage.mouseX
and stage.mouseY
position is a global (stage) coordinate. To see this behaviour, try changing the circle.x
in the hitTest.html example file.
globalToLocal
To convert a global position into a local one, we can use the globalToLocal
method. This method takes a global x & y value, and returns an object with x & y properties that have been transformed using the target object's concatenated transformation (ie. including its parent transformations).
This code converts the stage mouse position into a local position and outputs it to the console. The demo below applies this same code to check when transformed shapes are under the mouse. Check out the source in globalToLocal.html to see how it was done.
localToLocal
The globalToLocal
method works great if we're checking a stage position, but what about if you want to check hitTest
against a point in another transformed object?
You could use localToGlobal
and then its counterpart globalToLocal
to convert the point from one object's coordinate space to another's, but the localToLocal
method does the same thing with a little less code.
The following example show this being used to convert a position (100,0) on a rotating arm into a position relative to a target shape, to show when that point intersects the target. Check out localToLocal.html to see how it works.


Display Object Functions
Function Synopsis
| Function | Brief Description |
|---|---|
| w() | The desktop's width at its current resolution. |
| h() | The desktop's height at its current resolution. |
| desktop([desk]) | The current desktop. If a value for desktop is supplied, then the display changes to that desktop. |
| desktop_count() | The number of desktops currently available |
Parameters:
(none)Return Value:
The width of the desktop in pixels at the current resolution.Example(s):
import xaut disp = xaut.display() w = disp.w() print("The desktop is currently %d pixels wide") % (w)
Parameters:
(none)Return Value:
The height of the desktop in pixels at the current resolution.Example(s):
import xaut disp = xaut.display() h = disp.h() print("The desktop is currently %d pixels tall") % (h)
Function:
desktop([desk])
Get the current desktop. If a value for desk is supplied, then the display will change to that desktop and then return that value.
Note also that this software forces the desktop number to be 1 based. Which means that the valid desktops range from 1 to desktop_count() inclusive.
Parameters:
| Param | Req | Description |
|---|---|---|
| desk | no | The desktop to change to. |
Return Value:
The current desktop, which may or may not have changed.Example(s):
#Get the current desktop without making any changes import xaut disp = xaut.display() desk = disp.desktop() print("The current desktop is %d") % (desk)
#Change desktops #You need at least two desktops available import xaut import time disp = xaut.display() desk = disp.desktop() neu = 1 print("Old desktop was %d") % (desk) if(desk == 1): neu = desk + 1 desk = disp.desktop(neu) while(disp.desktop() != neu): pass print("Now we're at %d") % (desk)
Parameters:
(none)Return Value:
The current number of desktops.Example(s):
import xaut disp = xaut.display() count = disp.desktop_count() print("You have %d desktops") % (count)


Plugin Information |
|---|
Distribution of this plugin has been suspended due to unresolved security vulnerabilities, see below. |
The current version of this plugin may not be safe to use. Please review the following warnings before use:
This plugin provides a post build action for submitting files for scanning to veracode.
*Warning* - This plugin has a dependency on Java 7, so the Jenkins instance that you're installing the plugin into will need to be running in a Java 1.7+ environment to function properly.
*Warning* - This plugin is not officially supported by Veracode. If you are experiencing issues or have questions, please comment here or report an issue on Github.
To setup a job to submit artifacts to Veracode for a static scan, you'll first need to provide the credentials and default values in Manage Jenkins -> Configure System:
Then for each job that you want to initiate scans, add the "Submit Artifiacts For Veracode Scan" post build action to that job's configuration:
Provide a comma delimited list of files that you want to scan, the name of the application in Veracode, and override any default scan values:
Attachments:
veracode_add_pb_action.png (image/png)
veracode_job_settings.png (image/png)
Veracode_Help_Error.JPG (image/jpeg)


Q. 80. What is the first commandment? A. The first commandment is, Thou shalt have no other gods before me.
Q. 81. What does the first commandment teach us? A. To worship God alone.


The idea for this animation of found gif animations of books came up when thinking about the relationship between the printed book and its digital brother while writing a contribution to the Writing Marathon 2010 co-ordinated by Andrea Lioy:
"(…) When surfing the Web, one cannot help but notice that the Internet itself resembles the form of the book in many ways or even tries to emulate the experience of reading a book. How come that electronic book readers, such as the Amazon Kindle or the iPad, imitate the very sensual act of turning the pages of a printed book?"
From "Turning Digital Pages"
Turning Pages
WorkAnimation
ClientSelf-initiated
Year2010


Transitional Guild Minister(s): Viscountess Oonagh Bhán and THL Christel Leake Warden ~ Principality of the Mists: Lord Carrek MacBrian Warden ~ Principality of Cynagua: Viscountess Meisha Kulikova Warden ~ Principality of Oertha: Office Vacant Warden ~ Palintine Barony of the Far West: Viscountess Gwyneth Rhiannon of the Sea Warden ~ for The Marches: Office Vacant Guild Chronicler: Mistress Robin of Thornwood Programs Deputy: Atabeg (Baroness) Tusya Tatiana Suddosseva Guild Bedles: Cynehild Cynesigesdohtor and Apollonia Faust


{% extends "layout.html" %} {% block propositionHeader %} {% include "includes/propositional_navigation.html" %} {% endblock %} {% block content %} {% set currentPage = 'job' %} {% include "includes/main_nav.html" %} No results found There is no entry for '{{data.nino}}'. Create JSA/ESA/IS record Create Work and Health Programme record Search again {% endblock %}
There is no entry for '{{data.nino}}'.


WITNESS LIST Regulated Industries Committee May 3, 2005-2:00P SB 171 On: Munn, Bill (Tarrant Co. 911 District) SB 743 For: Fainter, John (Association of Electric Companies of Texas, Inc.) Trostle, Kay (Structural Metals, Inc.; TXI-Chaparral Steel; Nucor Steel) On: Biedrzycki, Carol (Texas Ratepayers Organization to Save Energy) Schrader, Thomas (ERCOT) Registering, but not testifying: For: Jewell, Michael (Direct Energy, CPL Retail Energy, WTU Retail Energy) Oldham, Phillip (Texas Coalition for Competitive Electricity) Zion, Mark (Texas Public Power Association) SB 1494 For: Carpenter, David (American Electric Power Company) SB 1495 For: Hartline, Rina (Centerpoint Energy) On: Oldham, Phillip (Texas Coalition for Competitive Electricity)


Sterling edges off six-month highs vs euro, jobs data awaited
LONDON, Nov 12 — Sterling was softer against the dollar and nudged down from six-month peaks against the euro today, a day after racking up firm gains after the Brexit Party said it would not contest previously Conservative held seats in an upcoming election.
The focus for now turned to the latest economic data, with British jobs numbers due out at 0930 GMT. Economists polled by Reuters expect the unemployment rate held steady at 3.9 per cent in September.
In early trade, the pound was down 0.15 per cent at $1.2830 (RM5.31).
It rallied as much as one per cent yesterday after Brexit Party leader Nigel Farage said he did not want anti-Brexit parties to win, so was standing down candidates in seats won by the Conservatives in 2017.
The move was seen as a significant boost for Prime Minister Boris Johnson ahead of the December 12 election. Sterling jumped to six-month peaks against the euro at 85.62 pence yesterday but was a touch softer today at 85.88 pence.
If the Conservatives win a majority, the pound could bounce three per cent, a Reuters poll found. Bookies now say a Tory majority is the odds-on favourite.
Jim Reid, a strategist at Deutsche Bank, said that while the Brexit party news was positive for the ruling Conservative Party, it may only bring an additional 10-15 seats.
“So, helpful to the Tories rather than game changing,” he said in a note.
“The Brexit Party have struggled for momentum in this election and the risk to them is that this indirect support for the Tories in nearly half the seats confuses their message in seats they are still fighting in.” — Reuters


Add-ons need a native application to run executables directly.
Please download, extract and install it from here.
Newer native application version available, some features might not work as expected.
Please download, extract and install it from here.