Or… “How I learned to stop worrying, and love Foundation.”
Forgive me, NSData.  I’ve learned my lesson.
— Rob Napier (@cocoaphony) September 28, 2015
I did a lot of writing and rewriting of the Swift version of RNCryptor. I struggled especially with what type to use for data. I gravitated quickly to [UInt8]
with all its apparent Swiftiness. But in the end, after many iterations, I refactored back to NSData
, and I’m really glad I did.
This is the story of why.
In fair frameworks, where we lay our scene
First, I want to be clear that I don’t think [UInt8]
is bad. In some places it’s better than NSData
, but there are tradeoffs, and ultimately I found the tradeoffs favored NSData
today. Some of those will improve in Future Swift, and I suspect something more Swifty than NSData
will be the way of the future. But today, in the kinds of projects I work on, there’s a lot going for NSData
.
“In the kinds of projects I work on” is an important caveat. I mostly build things that are used by other developers; frameworks, engines, services, even just snippets of code. I don’t build a lot of full applications that an end user would see. And the systems I build typically have a very small API surface. They typically do just one thing, and they’re built to be easily clicked together with things that I didn’t write.
To achieve that, I try to make most of my code as self-contained as possible, with minimal dependencies. I try to make it easy to plug into whatever system you prefer. That usually means sticking as much as possible to the types provided by the system. Much as I love Result
, none of my systems use it externally (and only a few use it internally). I try to avoid exposing my caller to any cleverness. If they’re familiar with the platform, I want them to find my API obvious, even boring. If they have a preferred error handling system, they probably have a way to convert throws
to it, since that’s what Cocoa generates. So I use throws
.
The elephant in the room
I see a lot of Swift devs behaving as though Cocoa has somehow disappeared. Cocoa has become the embarrassing uncle that no one wants to acknowledge, even though he’s sitting right there at Thanksgiving dinner passing you the potatoes. And this is crazy. First, Cocoa is a great framework, filled with all kinds of tools that we use every day, implemented well and refined for years. And second, Cocoa is a required framework, filled with tools that we have to use every day if we want to write apps.
Trying to cordon off Cocoa means constantly converting your types and patterns. That’s horrible for programs, and it’s very unswifty. Swift is all about integrating cleanly with Cocoa.
If you’re writing Cocoa apps you wind up with NSData
all the time. You get it when you read or write files, when you download things from the network, when you create PNGs, when you serialize. You can’t escape NSData
. Swift automatically bridges NSString
and String
, NSArray
and Array
, NSError
and ErrorType
. Some day I hope NSData
gets a bridge, but it doesn’t have one today. So the question is what to do in the meantime?
There are basically two options: build the bridge or use NSData
. Building the bridge (without modifying stdlib) is tricky if you want to avoid copying. It’s not hard if you’re not worried about performance, but an NSData
can easily be multiple megabytes and that’s both time and memory. Even temporary copies raise your high water mark, which hurts the whole system. Yes, I know all about premature optimization, but when you’re building frameworks you need to avoid patterns that are reasonably likely to cause performance problems. Even when you’re building just one app, there’s a difference between “build simply, then optimize” and “throw performance out the window until Apple rejects your app, then optimize.” If it were just one copy, and it made everything else really simple, that might be worth discussing. But making a copy every time you move from one part of the system to another is a problem.
With enough work you can solve this problem. It’s not tons of code, but it is a little bit tricky to be certain you’ve done it exactly right and won’t leak or crash (and much trickier to do from outside of stdlib). But is that work and complexity worth it? What problems were we really solving converting NSData
to [UInt8]
?
The magic that is Array
Even if you don’t care about NSData
interop, using [UInt8]
doesn’t give you a magical unicorn API. Array
has all kinds of little sharp edges that surprise and confuse if you want to very careful of making copies.
Let’s start with a simple function using NSData
and see what happens with [UInt8]
. This function takes a CCCryptorRef
and updates it with some data, writes the resulting encrypted data to a buffer and returns the buffer.
func updateCryptor(cryptor: CCCryptorRef, data: NSData) -> NSData {
let outputLength = CCCryptorGetOutputLength(cryptor, data.length, false)
let buffer = NSMutableData(length: outputLength)!
var dataOutMoved: Int = 0
let result = CCCryptorUpdate(cryptor,
data.bytes, data.length,
buffer.mutableBytes, buffer.length,
&dataOutMoved)
guard result == 0 else { fatalError() }
buffer.length = dataOutMoved
return buffer
}
No problems there IMO. That’s a fine implementation. Easy to read and understand (if you understand CCCryptorRef
). The [UInt8]
implementation is about the same. I don’t think you could say one is really much cleaner than the other.
func updateCryptor_(cryptor: CCCryptorRef, data: [UInt8]) -> [UInt8] {
let outputLength = CCCryptorGetOutputLength(cryptor, data.length, false)
var buffer = [UInt8](count: outputLength, repeatedValue: 0)
var dataOutMoved: Int = 0
let result = CCCryptorUpdate(cryptor,
data, data.count,
&buffer, buffer.count,
&dataOutMoved)
guard result == 0 else { fatalError() }
buffer[dataOutMoved..<buffer.endIndex] = []
return buffer
}
But is it correct? Can we be certain that data
is contiguous memory and isn’t really an NSArray<NSNumber>
under the covers? If it is an NSArray
, will this work or will we get the wrong data? Should we use .withUnsafePointer
here? I studied the docs, and talked to several devs (including Apple devs), and in the end am pretty sure that this will always work. But I’m only “pretty sure.” And that’s only because of kind people at Apple (especially @jckarter) taking time to walk through it with me. Not everyone has that.
This “but is it correct?” came up all over the place. Would this operation cause a copy? Exactly how long is an UnsafeBufferPointer
valid? There’s a lot of bridging magic in Array
, and it’s not always clear what is promised. Testing only gets you so far if the current implementation just happens to work. Sometimes behaviors change just by importing Foundation.
I thought I might avoid the Cocoa-bridging ambiguities of Array
by using ContiguousArray
instead. That way I could be very precise about my expectations. But it turns out that passing ContiguousArray
to C behaves very differently than passing Array
. Array
gets turned into a pointer to the first element, but ContiguousArray
gets turned into a pointer to the struct. So the ContiguousArray
gets corrupted and you crash. Array
is more magical than you think. Magic is wonderful until your program crashes and you don’t know why.
I struggled with copy-on-write behavior. How do I know if an array’s buffer is shared so that a copy will happen on mutation? Will this code allocate 10MB or 20MB?
func makeArray() -> [UInt8] {
return Array(count: 10_000_000, repeatedValue: 0)
}
var array = makeArray() + [1]
What tests would prove that? Is it promised or just the current implementation? Does optimization level matter? Is it the same if makeArray()
is in another module than the caller? Would small changes in my code lead to dramatic and surprising performance changes in apps that use my framework? This was a common problem in Scala before the @tailrec
annotation was added. Very small tweaks to a recursive function could cause your stack to explode because you quietly broke tail call optimization. All your unit tests still pass, but the program crashes.
In the end, I spent hours trying to be certain of the precise behaviors of Array
bridging and copying. And all that to replace NSData
code that is perfectly fine.
Slice and dice
When updating the cryptor, it is common that you’ll only want some of the data you were passed. You might want to slice off a header, or you might want to chunk the data up to reduce your encryption buffer size. In either case, you want to pass updateCryptor()
a slice.
For an immutable NSData
that’s easy. Call .subdataWithRange()
and you get another NSData
back with no copying.
But the SubSequence
of Array
is ArraySlice
, and updateCryptor()
doesn’t accept that. Of course you can copy your slice into a new Array
, but unnecessary copying was what we wanted to avoid.
We could make all the functions take ArraySlice
and overload all the functions with an Array
interface that forwards to the ArraySlice
interface. But it’s a lot of duplication.
So I decided to just convert everything to UnsafeBufferPointer
and then pass that around internally. Easier semantics after a one-time conversion. No bridging worries. No unexpected copies. It seemed like a good idea at the time.
The problem is that using UnsafeBufferPointer
everywhere tends to turn your code inside out. Where you used to say:
updateCryptor(cryptor, data: data)
You now have to say:
data.withUnsafeBufferPointer { updateCryptor(cryptor, data: $0) }
Two solutions present themselves. First you decide that you are very clever, and use the UnsafeBufferPointer
constructor:
// Never do this
updateCryptor(cryptor, data: UnsafeBufferPointer(start: data, count: data.count))
Then @jckarter points out that by the time updateCryptor
runs, there’s no promise that the UnsafeBufferPointer
is still valid. ARC could destroy data
before the statement even completes. (If you know that data
is life-extended, then it is possible to know this will work, but it’s very unsafe, fragile, and hard to audit. Coding that way breaks everything Swift was trying to fix.)
So then you start creating function overloads to accept Array
and ArraySlice
and convert them into UnsafeBufferPointer
, and you have even more duplicated code. And then you realize you want to accept NSData
here, too, so you write an extension that adds .withUnsafeBufferPointer()
to NSData
, and now you have four versions of every function, and you realize you really should use a protocol instead. Brilliant!
protocol BufferType {
func withUnsafeBufferPointer<R>(body: (UnsafeBufferPointer<UInt8>) throws -> R) rethrows -> R
}
This really feels like it’ll solve all these problems very elegantly. Except for this one problem.  And then you discover that while you can write extensions that only apply to [UInt8]
, you can’t use those extensions to conform to a protocol. And that’s when the screaming starts. And then the barginning, and then the drinking.
When you get to the muttering, you came back and start building a Buffer
class to wrap Array
, ArraySlice
, NSData
, and even CollectionType
to give it all a consistent interface. It’s ok, but it creates another “thing” for callers to deal with. In almost all cases, they have an NSData
. There is almost no chance they had a [UInt8]
. This is all just an extra layer for callers to deal with and to get in the way of the optimizer.
I want to remind you that all of this, all these many, many hours of struggle, were to avoid the simple NSData
code that took two minutes to write, works great, and is pretty darn Swifty as long as you don’t define “Swifty” as “does not import Foundation.”
What’s the matter with NSData?
So why did I resist using NSData
anyway? Well, even though I believe the Foundation is absolutely a part of Swift, some of it isn’t great Swift. Notably NSData
isn’t a CollectionType
. But fixing that is pretty easy.
End-to-end NSData
also opened up some other opportunities for me, namely dispatch_data
, which had threatened to be another can of worms with [UInt8]
.
For some, none of this will matter. The vast majority of my problems come from trying to dodge unnecessary copies. Much of this is very simple if you’re willing to just copy the data all over the place. For many kinds of problems, that’s fine. Use whatever you like. The copy-on-write system is actually pretty awesome and for most problems you can certainly trust it.
But for those in my situation, where performance is a serious consideration in much of your code, you’re looking for predictability as much as speed, and data can be huge, my hope is we get a Buffer
type (or Data
or whatever) that acts as a bridge to NSData
, supports dispatch_data
, and plays nicely with stdlib. But until that comes, I think NSData
is just fine.


{% extends 'home/base.html' %} {% load static %} {% block head %}
The w3Hacks hackathon is a consistent virtual event that allows w3Hacks users to use their existing knowledge and knowledge gained from our exercises to build projects, showcase them, and possibly win something!
Our hackathon is for any w3Hacks user! Anyone can simple go to the hackathon they want to compete in and RSVP with 1 click of a button! Doesn't matter how old you are or your previous education/background.
If you compete well enough, any w3Hacks hackathon competitor can win any of the prizes listed on the respective hackathon page! Some prizes are generic, and some cater to those who follow the themes/technologies.
Besides the prizes and the easy signups, hackathons in general are a great way to practice your knowledge and learn something new! And the w3Hacks hackathon allows your to experience that from the comfort of your own home.


Who left Strictly? Michelle Visage kicked out after being hailed as 'potential winner'
Strictly Come Dancing viewers were stunned at the Drag Race star's exit this evening after receiving high scores every week
by Irishmirror.ieMichelle Visage became the eighth celebrity to leave Strictly Come Dancing, leaving her co-stars stunned.
The Drag Race star, 51, was previously hailed as the potential winner of the BBC dancing competition, so her exit came as a shock to many viewers.
She and Giovanni Pernice landed in the bottom two with YouTuber Saffron Barker and AJ Pritchard, meaning both couples had to dance again.
Michelle and Giovanni performed their couples choice dance, which was street commercial, to Madonna's iconic Vogue.
Meanwhile Saffron and AJ Quickstepped to Beverley Knight's Marvellous Party in a bid to impress the judges.
Craig Revel Horwood deliberated over the decision, admitting that he found it difficult to pick who to save.
Eventually, however, he said: "I'm having a really difficult time with myself over this. This doesn’t normally happen to me. I normally make a very quick, instant decision. This has been really, really difficult.
"One couple took all the notes on board and one couple were better. And the couple I’ve decided I would like to save is save is Saffron and AJ."
Motsi Mabuse also decided to save Saffron and AJ after saying that they had seen "two brilliant dances".
Finally, Bruno Tonioli agreed, saying that Saffron and AJ's dance was "on the money".
"Ahh, it’s so competitive its unbelievable," he said. "First I want to congratulate both of you. You both really raised the game tonight – much, much better than Saturday.
"And it’s very hard to decide but based on what I saw somebody I really thought nailed the dance. Right on the money. Saffron and AJ."
Head Judge Shirley Ballas said that she agreed with her fellow judges and would have sent Michelle and Giovanni home.
Afterwards, Michelle branded her experience "amazing" and that she couldn't have done the show without her pro partner Giovanni.
"At 51 years old and never danced in my life, I never thought I’d be able to do what I have done and to have such an incredible partner," Michelle said. "To be here for my husband and my kids and the entire community, that’s why I did what I did. I am so honoured to be welcomed by my new friends here.”
Speaking about Giovanni, she said: "Obviously I couldn’t have done it without him. He has been so amazing, so transformative. Just my rock and my best friend throughout this entire competition. He could take it as much as he could dish it, and I needed somebody like that. I’m going to miss seeing him every day. I would never have wanted to do this with anyone else.”
Giovanni added: "You are wonderful. We laugh, we cry, we fight and we argue and we’v e done everything but I’ve loved every single second. I think you are inspirational and we did this dance and wanted to send a message.
 I’m here to say thank you, thank you, thank you."
*Strictly returns next Saturday on BBC One


{% extends "template.html" %} {% block content %}
Domain: Politics & Company
27 July 2020
Sentiment analyser for Latvian tweets.
The model is trained on tweets from politics domain and achieves ~76% accuracy.
Learn More
{% endblock %}


Seamlessly embrace an expanded array of supply chains with equity invested innovation. Seamlessly facilit aone-to- one infomediaries and value-added strategic theme areas. Monotonectally incentivize market positioning supply chains rather than out-of-the-box leadership. Quickly procrastinate intuitive customer service whereas principle -centered technologies.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi quam delectus, ex doloremque deleniti debitis. Ut, repellendus sunt. Dolore, fuga!
On set of a shoot at the end of last week, the journalist dispatched to question me about my style, my style, my style and my style, asked after each look: “So where would you wear this outfit?”.
Objectively underwhelm open-source infomediaries without world-class functionalities. Authoritatively go forward initiatives for progressive growth strategies.  Appropriately productize bleeding-edge methods of empowerment.
Mauna Loa, the biggest volcano on Earth and one of the most active covers half the Island of Just 35 miles to the northeast, Mauna Kea, known to native Hawaiians as Mauna a Wakea, rises 14,000 feet above sea level. To them it represents a spiritual.
Comments
Gerald Rishel
April 25, 2017Energistically optimize installed base channels after open-source sources. Continually repurpose team driven markets via long-term high-impact imperatives.
Gerald Rishel
April 25, 2017Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perferendis expedita voluptatibus temporibus repellendus asperiores cupiditate animi quis, at, sit, reprehenderit distinctio necessitatibus totam rerum, numquam.


Title: Adventures of Huckleberry Finn
Author: Mark Twain
Text from: The Project Gutenberg
Cover provided by: Recovering the Classics
Artist: Kjell Roger, ©2013
Curation by: Vorpal Editorial in collaboration with Dosdoce.com
Fonts used: "Cardo" designed by David Perry
If you find any issues with this work, please report them at
https://github.com/GITenberg/Adventures-of-Huckleberry-Finn_76/issues
Made available under a Creative Commons Attribution-NonCommercial 4.0 license
https://creativecommons.org/licenses/by-nc/4.0/


History of WWW/HTML/CSS
WWW - Wolrd Wide Web
The Web extends
Going global
December 1991 - first Web server in the US
Late 1993 - there were over 500 known web servers
1994 was the “Year of the Web”
By the end of 1994, the Web had 10 000 servers and 10 million users.
Open standards
In 1994 was founded the International World Wide Web Consortium (W3C).
In April 1995, INRIA became the first European W3C host
In September 2018, there were more than 400 member organisations from around the world.
HTML
Short for HyperText Markup Language, this language used to create documents on the World Wide Web.
A first attempt at extending HTML in 1995 - HTML 3.0
HTML 3.2 was completed in 1997
HTML4 reaching completion in 1998.
XHTML 1.0 and which was completed in 2000
In 2007 the W3C formed a working group on the development of the HTML5
CSS
Stands for Cascading Style Sheet.


Afterwood
As I write this the number one show on the popular streaming service Netflix is called Squid Game, a South Korean drama where hundreds of adult contestants compete in a deadly series of children’s games for a life changing sum of money. Naturally the meme generators are working overtime and I can’t help but be seduced by thoughts of how you might apply the premise of the show to our own profession. The show has a somewhat macabre element which I’d rather not dwell on in a family friendly publication such as this, so maybe The Crystal Maze would be considered a better format. However, if it’s children’s games from my era we’re after then I’d need to regress a few more years back into the mid ‘80s BBC Archives where we meet its spiritual successor – The Adventure Game. This show was set on the fictional planet of Arg which feels like the perfect place for programmers to battle it out.
This also feels like the ideal topic to start testing our contestant’s mettle – passing arguments. The scenario I have in mind is one which I personally have spent the past few weeks tearing my hair out over, namely passing arguments with embedded quotes. Shells like Bash and PowerShell support more than one style of quotes (for string interpolation reasons) which makes the simple case undaunting. The show should require something more akin to my recent task which involved passing a non-trivial PowerShell command line to a remote Windows VM from a Bash shell, which in turn invoked a shell script that used SSH to talk to the VM’s host and SSH from the host into the guest VM, which in turn had Bash configured as the default shell on the Windows side. That should keep them busy for a while just googling how to escape quote characters in different shells and tools!
The second game I have in mind taps into the Squid Game theme, but only in name – Stuck in the Mud. On this occasion we’re not alluding to the Multi-User Dungeon, which is probably more befitting of the Adventure Game, but the term popularised by Brian Foote and Joseph Yoder. As a system grows over time close attention must be paid to the architecture and design lest it wind up as the aforementioned Big Ball of Mud – a sprawling mess of spaghetti code. Hence the task our competitors must face would be to make sense of a legacy codebase and refactor it so the unnecessary duplication is removed and it becomes more amenable to change without taking its toll on the team’s morale.
Much as I like the play on words in that title, I think there is a better playground game that lends itself moreto this particular exercise. In “Spot” players take it in turns to kick a football against a wall, and if they miss, they lose a life. (Each life is represented by one letter of S.P.O.T. and when all lives are lost the player is out). Not only does the title gel nicely with the idea of refactoring to reduce the duplication of concepts, i.e. a Single Point of Truth (aka SPOT), but the format also suggests the use of limiting the number of test failures allowed as a mechanism for “lives”. I’m sure it won’t be lost on the contestants the ridiculousness of a scenario where the production code is in an absolute mess but it also contains a full suite of tests. I’m going to have my work cut out for me trying to provide a plausible backstory. (As an aside I’m now beginning to wonder if Kent Beck took his inspiration for “Test && Commit || Revert” from the show as that also seems quite brutal…)
Given the amount of exposure the tv show has had in the media and on the socials in the last few weeks I don’t think it’s a spoiler to say that one of the challenges they face in Squid Game is a variation of what we Brits called Statues, but they call Red Light/Green Light, where the players have to creep up on the person who’s “it” while their back is turned. I sense there is some additional testing related mileage here under the more “punful” name Red Bar/Green Bar. Here you can’t make progress by adding new features to the product unless the bar is green; when it’s red you must fix the code first. That feels a little too much like real life but in my game you won’t be able to just comment the test out, add an ignore attribute, or make the test run multiple times in the hope it succeeds eventually and manages to hide the lack of determinism.
For the finale I can think of no more difficult a topic for programmers to tackle than that of time. In “What’s the Time Mr. Wolf?” our contestants will be faced with a series of challenges that require them to correctly calculate dates and times across the globe. For example, one task might be to use Outlook in one country to book a Zoom meeting where all the participants are situated in other countries. You lose a life if at least one person doesn’t show up at the correct time. Another would see you execute a multi-currency, multi-month trade where the start and end dates straddle Christmas and Golden Week, during a leap year. I mustn’t forget to include a daylight saving time puzzle in there somewhere too!
I’m sure if I cast my mind back far enough to my childhood, I can dredge up some more inspiration. The game of Sardines (a variant of Hide-and-Seek) where you work ever harder to overcome a lack of capacity has an eerily familiar tone to it. Likewise the practice of chaos engineering feels like it has its roots in a game of Knock Down Ginger where you try and switch off random hardware without getting caught by the customer, and I’ve definitely been involved in code reviews that have felt more a game of British Bulldog!
Chris Oldwood
15 November 2021
Chris is a freelance programmer who started out as a bedroom
coder in the 80’s writing assembler on 8-bit micros. These days it's enterprise
grade technology in plush corporate offices from the comfort of his
breakfast bar. He has resumed commentating on the Godmanchester duck race but
continues to be easily distracted by messages to<EMAIL_ADDRESS>and
@chrisoldwood.


Feature Detection And Scale Space
-
Tag:
- feature
- scale space
Feature Detection at a given scale in scale-space
Consider scale-space representation of image :
where is the scale parameter, and is the two-dimensional variable-scale Gaussian kernel written as
The 2-jet at a given image point and a given scale contains the partial derivatives
From the five components in the 2-jet, four differential invariants can be constructed, which are invariant to local rotations; the gradient magnitude , the Laplacian , the determinant of the Hessian and the rescaled level curve curvature :
- ,
- ,
- ,
- .
These operators can detect different types of local structures:
- A single-scale blob detector can be expressed from the minima and the maxima of the Laplacian response .
- An affine covariant blob detector or a saddle detector can be expressed from the maxima and the minima of the determinant of the Hessian .
- A straightforward and affine covariant corner detector can be expressed from the maxima and minima of the rescaled level curve curvature .
Some conclusions drawn by SURF:
- Hessian-based detectors are more stable and repeatable than Harris-based counterparts.
- Using the determinant of the Hessian matrix rather than its trace (the Laplacian) seems advantageous, as it fires less elongated, ill-localised structures.


Chapter 4 Computation Chapter
— ISMIR ; symbolic music processing ; computational music theory and musicology ; cognitive MIR ; datasets ; evaluation beyond just notes ; training and education application —
4.1 Rationale
Music theorists use their pedagogical experience and intuitions to build the appropriate curricula for their aural skills pedagogy. Teaching aural skills typically starts with providing students with simpler exercises, often employing a limited number of notes and rhythms, and then slowly progressing to more difficult repertoire. This progression from simpler to more difficult is evident in aural skills text books. Of the major aural skills textbooks such as the OTTMANN, the BERKOWITZ, KARPINSKI, CLENDENNING MARVIN, DOBREA CLELAND, each is structured in such a way that musical material presented earlier on in the book is more manageable than that near the end. In fact, this is true of almost any ETUDE book: open to a random page in a book of musical studies and the difficulty of the study will most likely scale accordingly to its relative position in the textbook. But it is not a melody’s position in a text book that makes it difficult to perform: this difficulty comes from the structural elements from the music itself.
Intuitively, music theorists have a general understanding of what makes a melody difficult to dictate.13 Factors that might contribute to this complexity could be attributes such as the melody’s note density, the intricacies of the rhythms involved, the scale from which the melody derives, or even more intuitively understood factors such as how tonal the melody sounds. Although given all these factors, there is no definitive combination of features that perfectly predicts the degree to which theorists will agree how complex a melody is. In many ways, questions of melodic complexity are very much like questions of melodic similarity: it depends on both who is asking the question and for what reasons (CITE SELF).
Looking at the melodies presented in Figures X and Y, most aural skills pedagogues will be able to successfully intuit which melody is more complex, and presumably, more difficulty to dictate.
FIGURE 1 – Melody with 8 Bars, functional accidentals (V/V, V/IV)
FIGURE 2 – Same sets of notes rearranged
While I reserve an extended discussion of what features might characterize why one melody is more difficult than the other to dictate for below, I assume that these melodies do differ in a fundamentally different way when performed in a similar fashion. Additionally, many readers of this dissertation can probably draw from anecdotal evidence of their own as to how student’s at various stages of their aural training might fair when asked to dictate both melodies. For some, melody Y might be overwhelmingly difficult.
In fact, it might be overwhelmingly difficulty for the vast majority of people. Student are quick establish if they belie that a melody they are being tested on is too difficult, and importantly from a pedagogical standpoint, we as educators need to be able to know how difficulty melodies are given our students in order to asses a degree of fairness in our grading of student’s performance. While of course with each student there are inevitably many other variables at play ranging from personal abilities to the goals of the instructor in the scope of their course, yet there are intuitive benchmarks that students are expected to be able to complete throughout their education. As students progress, they are expected to be able to dictate more and more difficult melodies, yet exactly what makes a melody complex is often left to the expertise and intuition of a theorist.
In this chapter I examine how tools from computational musicology can be used to help model an aural skill’s notion of complexity in melodies. First, I establish that theorists agree on the differences in melodic complexity using results from a small survey of XX theorists. Second, explore how both static and dynamic computationally derived measures can be used to approximate an aural skills pedagogue’s intuition. Third and finally, I use evidence afforded by research in computational musicology to posit that the distributional patterns in a corpus of music can be strategically employed to create a more linear path to success among students of aural skills. I demonstrate how by combining evidence from the statistical learning hypothesis, the probabilistic prediction hypothesis, and a newly posited distributional frequency hypothesis can explain why some musical sequences in a melody of a certain complexity are easier to dictate than others. Using this logic, I then create a new compendium of short melodies, sorted by their perceptual complexity, that can be used for teaching applications.
4.2 Agreeing on Complexity
Returning to melodies X and Y from above, an aural skills pedagogue most likely has some sort of intution of which of the two melodies would be easier to dictate. Melody X exhibits a predictiable melodic synatax and phrase structure, the chromatic notes resovle within the conventions of the Common Practice period, and many of the melodic motives outline and imply a harmony based on tertian harmony. On the other hand, Melody Y’s syntax does not comform the the conventions of the common practice music and does not imply any sort of underlying harmony. The durations of the rhythms appear irregular and the melody implies an uneven phrase structure. Yet both melodies X and Y have the exact same set of notes and rhythms. Though despite these content similarities, it would be safe to assume that melody X is probably much easier to dictate than melody Y assuming both were to be played at the same tempo and instrumentation.
In fact, aural skills pedagoges tend to agree for the most part on questions of difficulty of dication. To demonstrate this, I surveyed XX aural skills pedagogues who have all taught at least two years of aural skills at the University level asking them questions presented in TABLE X on a sample of XX melodies found in the BERKOWITZ. The survey had questions that specficially were designed to gauge their appropriateness for use in a melodic dictation context.
Questions included:
| Table |
| 1. What semester of aural skills do you think this melody is appropriate for? |
| 2. How many times do you think this melody should be played in reference to your answer from question 1? |
| 3. Please rate how difficult you believe this melody to be for the average second year undergraduate at your instiution. |
| 4. How musical do you believe this melody to be? |
| 5. Where in the melody (please list a measure number) do you think student’s will have the most difficulty dictating the melody? |
| 6. Is this a melody you would feel comfortable using in your own aural skill’s class? |
| 7. Could you dictate this melody now? |
Overall, the sample exhibited a _____ degree of inter-rater reliability as measured by THIS STATISTICX14 Plotting the respondant’s answers across the textbook, with the book progressing from less to more difficult, there is a trend of pedagoges to AGREE ON THE SIMPLER ONES THEN HAVE MORE DIAGREEMENT LATER ON? Central to my argument is a VERY LINEAR TREND of rating of complexity that correlate with both PAGE NUMBER from the textbook that it was drawn from, as well as an even better fitting model of THE EXACT NUMBER OF THE MELODY. MORE DISCUSSION HERE AFTER LOOKING AT DATA.
Taken together, both anecdotal and the evidence for this survey suggest that aural skills pedagoges tend to agree on how difficult a melody is for use in an aural skills setting. This sense of difficutly or complexity tracks as the book progresses, but to attribute the cause of a melody being difficult as its position in the book would be making a pretty hilarious error.
——— EDIT HERE It is important to highlight that despite the level of agreement at lower levels of difficulty, even experts do not seem to agree on the appropriateness of melodies as they become more complex for classroom use. Of course perfect levels of agreement are not expected, but due ot the fact that people need to be graded and assessed fairly on melodies, this level of disagreement is cause for alarm. This level of disagreement might also help explain student’s responses to aural skills pedagogy…
And to compound this problem, literature from psychology (Kanneman and Tversky, that medicice doctor study) importantly highlight the fact that it’s important to be skeptical of expert opinions. Drawing from the medical liteature– a body of research where getting somethign wrong probably matters more– have evidence of stuff happenign with heart attcks. Undelrying logic being that people think they have the key, but really they do not. And what solved this was a computaional problem. ————
The rest of this chapter investigates if similar computaionally derrived tools can help inform aural skills pedagogy. In order to provide a sense of validity to the measure, I use the expert answers from the survey as the ground truth for the computational models.15
4.3 Modeling Complexity
The ability to quantify what theorists generally agree to be melodic complexity depends on distilling complexity into its component parts. Earlier, when comparing melodies X and Y, some of the features put forward that might contribute to this measure were features such as note density, the melody’s rhythm, what scale the melody draws its notes from, and how expected the notes are, and how tonal the melody might be percieved. Some combination of these component features presumably make up the construct of complexity.
Attempting to use features of a melody to to predict how well a melody is remembered has a long history. In 193X, Ortmann put forward a set of melodic determinants that he asserted predicted how well a melody was remembered. These features such as a melody’s repeition, pitch-direction, contour (conjunct-disjunct motion), degree, order, and implied harmony (chord structure) were deemed to affect the melody’s ability to be remembered.
Pedagoges since Ortmann such as XYZ have expanded on this research and concluded that ________. Using some sort of non-musical representation like a melody’s contour is an abstracted feature of the melody. Abstracted features of melodys assume some sort of suspended animation of listening meaning that what is abstracted has some sort of meaning that is related to the listening experience. While if an abstracted measure maps directly to any sort of phenomenological experience in time, might be contested, these types of measures have been becoming more common in music psycholgy research.
- Sentence here about static and dynamic.
4.3.1 Static
An abstracted feature can be either a quantitative or qualitiative observable feature of a melody that is assumed to be perceptual to the listener, but often difficult to quantify with the traditional tools of music analysis. Often, these abstracted features come inspired from other domains like computational linguistics. To given an example of an abstracted feature, perhaps one of the most popular features in recent decades is the normalized pairwise variability index or nPVI (CITE). The nPVI began as a measure of rhythmic variablility in langauge. Shown in FIGURE X, the nPVI quantifies the xxx by the yyy in order to provide a metric that can be used as an approximation of the perception that some langauges sound perceptually different. (GET MORE STUFF FROM ORIGINAL NPVI) In lingusitics, the nPVI has been used to delinate stress timed langauges from something else… Recenlty in the past x years, music science researchers have used the nPVI to attempt to investigate claims about the relationship between speeach and laguage (CITE ALL HERE). While results are mixed regarding the nPVI’s predictive ability and some people argue against nPVI (Nat), it does serve as a very good example of a static comuputationall derrived measure. Just like taking the average weight in a population, the nPVI summerizes a phrase and importantly assumes that this measure is representive of the entire phrase the calcuation was performed upon.
or stuff here of meredith and that chapter.
One of the most complete set of computational measures as applied to music perception comes from Daniel Mullensiefens’ whole name FANTASTIC toolbox (CITE). According to FANTATIC’s techncial report,
“FANTASTIC is a program…that analyzes melodies by computing features The aim is to characterise a melody or a melodic phrase by a set of numerical or categorical values reflecting different aspects of musical structure. This feature representation of melodies can then be applied in Music Information Retrieval algorithms or computational models of melody cognition.” (pp. 4)
Drawing from fields both central and perphircal to music science, FANTASTIC computes a collection of XX features to analyze features of melodies and continues from a tradition of feature extraction in music research FROM Lomax (1977), Steinbeck (1982), Jesser (1990), Sagrillo (1999), Eerola and Toiviainen (2004) and since its release has been sucessful at …… SINCE THEN. Addittionally, FANTASATIC also provides a framework for comparing the features of a melody with a parent corpus from which the melody belongs.
Returning to the Aural Skills classroom, many of these features can be used to approximate the intutions of complexity as agreed upon by theorists. Below, I SHOW A SERIES OF PLOTS WHERE the continously measured abstracted features of FANTASTIC are plotted against the measures of perceieved complexity and difficulty of expert aural skills pedagoges with their respective correlations in TABLE X.
GIANT FIGURE HERE
GIANT TABLE HERE
From this, it becomes evident that some features like __________ and ________ succede quite well in approximating the rated complexity measures, while others like __________ and ________ do not. I suggest that the reasons that ________ measures are sucessful in explainig is because ___________________.
In modeling this problem univariatly (one v one), it quicly becomes evident that no single static measure from FANTASTIC is able to complete mirror that of the complexity measrues. Following past research (HARRISON, ME, OTHER PAPER THAT I CANT THINK OF), I used a PRINCIPAL COMPONENTS ANALYSIS to distill a single measure of complexity from THIS THIS AND THIS, that I then plot against the ratings and show that using this measure in a regression context increases our correlatio/R2 up a bit.
Hopefully at this point, I can make the argument that I am getting quite close at fully explaining the variance in ratings. Finally, using the features of FANTASTIC, I can also use a random forrest method (LIKE THESE DANIEL PAPERS) to use some machine learning methods to see what best explains this data.
USING A …. details of Random Forrest here……
And importanly….. Variable imporacne plot which works by running multiple models and seeing how much variance is accounted for when the model is left out.
We see that X Y Z are of highest importance, and this corroborates literature from other FANTASTIC measures that say XYZ.
This is important for pedagogy, this can be used to help provide objective measure of difficulty. Can also be a starting point for work on linking these various features with listener response. And thus help people desgin curricula and also then better understand human pecerception and role of melody in the aural skills clasroom.
Though while sucessful at modeling, using various linear combinations of these static abstracted features still assumes that listerns experience melodies in some sort of perceptual suspended animation. In order to have more phenomenologically approriate model that incorporates computainoally derived features, it is important to turn to dynamic models of music perception.
4.3.2 Dynamic
The Information Dynamic of Muscic (IDyOM) model of Marcus Pearce is a computational model of auditory cognition that … PEARCE 2018. Unlike measures from FANTASTIC, that calculate summary statistics on melodies, IDyOM works by…. As mentioned in Chapter 1, IDyOM is based both on the SLH and PPH. THey state…. Due to the fact that IDyOM makes its calculations based on a series of n-grams that the model learns, IDyOM is able to output measures of expectedness for each symbolic token used in its calculations. As a model, IDyOM has been sucessful at modeling…. The findings are robust, yet the measures of information content based on Shannon entropy have yet to be used to actually quantify memory (even ala Miller 1956).
Using measures of IC from IDyOM is a novel application of the IDyOM model, but makes sense. Literature from sequential learning notes that much of our learning for materials happens implicitly This happens from both langauge and music. Roherhimer reference Margulis reference
If true, repeatitive stimuli are then easier to processly as they are going to tax memory less. Lking aslo follow that IC measures of expctedness (if we assume expct are easier ot procecss) can be used in memory measure
Take for example the following two 8grams THey are listed with their informaiton contnet. One is the opening of this tune The other is this really famous tone row
4.4 Frequency Facilitation Hypothesis
Can see that both are sequences of eight notes, but one consists of more predictiable notes. Can model this in terms of information content and as information accumulates over the phrase. Intutivly, returning to logic from above, one will be easier to remember and dictate. And This is due to processing fluency, thus less of a tax on memory. So I am saying that you can use the IC measures of informaiton as actul measures of information.
More formally, the evidence can be summerized in what I am calling DFH. Which states:
- some sequences are easier to process, means they are more expected.
- IC measures of expectancy can be used as prox for memory
- Given sequence of N lenght melody, ease of dication which is loads on memory is relative to its degree of expectedness in IC and link it back to corpus by saying that it is relative to it’s n-gram distribution frequency.
From this hypothesis, we derrive a couple of testiable predciitions that we can continue to use tools from computational musicology and subsequestntly music psychology to answer.
4.4.1 Distributional Patterns in Corpus
If this is true, we should see this again throughotu the corpus And If IC measures can be used as memory proxy bc of processing due to SLH and PPH, would follow that n-grams woudl be processed relative to their distribution in a corpus. And they will have lower IC. To show this I extract out of a corpus of 2 3 5 10 grams form both sides of frequency distribution of a corpus to present side by side show intuitive.
we can also plot this continously
4.4.2 Memory Facilitation
Predictions here OR add in mini experiment that will be test for ISMIR paper.
go for further psychology experiemnts in this, lays basis for the computational model and more direct pedagogical applicaitons are discussed below
4.4.3 Peagogical applcation
Here is how you would do it pedagoically If this is case, would mean that this is a new way to organize melodies in book. Could instead list all melodies and have them as snippets. Orgnize them like books in terms of ascending difficulty. And this is how i have done it. Samples from all the n-grams in this table
TABLE
Can find all the things in the back. Would suggest learning these patterns as supplment to melody learning. It would do the following things. I list melodies in the back. I would predict that if people learned this as supplment, they would do a lot better. Also get rid of some sort of performance anxiety in little successes.
4.5 Chapter Conclusions
In this chapter I have demonstrated how tools from computational musicology can be used as an aide in aural skills pedagogy. After first establishing the extent to which aural skills pedagogues on various melody parameters, I then show how two families of computationally derrived features can stand in for a pedaguges intution. First, using the FANTASTIC toolbox, I show how different combintations of static abstracted features can help explain theorists agreed upon complexity. This first will help with selection of melodies and also provides insights as to which features of the melodies contribute most to percieved difficutly. Second, I demonstrated how assumptions derived from the IDyOM framework can serve as a basis for the intutions of why smaller sequences of notes within melodies are more or less difficult to dictate. Using the logic that sequences that are easier to process are more expected, and that computed measures of information content can be used as a proxy for memory, I show that it follows that given the sequence of an N lenght melody, the ease of dictaiton that it loads on memory is relative to both its degree of expectednes quantified in terms of informaiton content and link it back to hte corpus by linking THAT to it’s n-gram distribbutional freuqency. This chain of thinking then allowed me to put forward a new sequence of melody segments that can be arragned, like other theory textbooks, in terms of their increasing complexiy. I argue that using this smaller, snippit approach, will allow students to not be overwhelmed in their learning by taking a more linear path to dictation, before moving on to more more ecologically valid melodies. I finish by disucssiong how this might be implemented in the classroom.
THER PEOPLE WHO HAVE DONE THIS
- look into Wiggins et al., 1993, for history of representation
Folk music
- Bartok 1936?
- Bartok and Lord 1951
- Lomax 1977 ; Lomax, A. (1977). Universals in song. The World of Music, 19, 117–129.
- Steinbeck 1982
- Jesser 1992
Sagrillo 1999
GET AND READ PAT SAVAGE ARTICLE
Popular Music
- Moor 2006
- Kramarz 2006
- Furnes 2006
- Riedemann ????
Computational Musicology
- Eerola eta al 2007 and 2007
- McCay 2005
- Huron 2006
- Frieler 2008
- JAZZOMAT PROJECRT OUTPUT
I find it safe to assume that more complex melodies are more difficult to dictate As I will demonstrate in this chapter, a melody’s complexity and difficulty to be dictated are closely related. For that reason, I will use the term complexity as a proxy for its ability to be dictated.↩
Reference here about what is good and what is bad.↩
Do I have to explain what ground truth is?↩


{% include "navbar.html" %}
{% include "flash.html" %}
Log in
Log in with Facebook
Log in with Google
Log in with GitHub
{% include "categorylist.html" %}


In our case, we have only one study, but you could have more and consequently you have to check which studies to
proceed in the table.
Once it is done, click on
Supposed you have imported a simple csv file as seen previously and you have only declared (assigned) columns
type.
Then, you want to link this data with the corresponding MIAPPE component in your investigation tree.
To do that, you have 2 solutions:
If you have already created the node for your component (as we did in this tutorial), you only need to link it with your data
You could also create a new MIAPPE component to link with your column
In this page, you can extract components from data files to each study of your investigation {{model_key}}
You do not have data file in your investigation, please add one with Datafiles from tabular files action from the investigation node !!!
First, you have to choose the data file (use the select option appropriatly).
Once you have declared the {{model_type_label}} you need, select studies in which these components will be integrated by checking corresponding rows !!
| {{column}} | {{column}} | {{row[column]}} |
|
|
|---|
Here are {{model_type_label}}(s) that you have assigned in your data file. As you can see, there is one column called plant_height that you have assigned as {{model_type_label}}. You also notice that the assumed {{model_type_label}} is in unset state for now. To extract it, you can either add a new MIAPPE component or use an existing one.
You do not have data file in your investigation, please add one with Datafiles from tabular files action from the investigation node !!!
Given that you can observed individual plants (identified by biological material ID) or groups of plants identified by the same material source ID, you need to select which type of IDs is contained in your data file column !!
Given that you can observed individual plants (identified by biological material ID) or groups of plants identified by the same material source ID, you need to select which type of IDs is contained in your data file column !!
Here are headers detected as {{model_type_label}} in your data file. Depending on previous actions, headers
could be green or grey. Green means that you have already linked this header.
grey means that header is unset.
Click on it to fill the corresponding form !! then submit to add it in LINDA database as a new
{{model_type_label}}!!
If you did not created the {{model_type_label}} yet, you can jointly extract and link MIAPPE component({{model_type_label}} in our case) to your data.
You do not have data file in your investigation, please add one with Datafiles from tabular files action from the investigation node !!!
Here are existing {{model_type_label}}(s) component in your investigation, click on it to associate the column to this {{model_type_label}} component !!
If you have already created the {{model_type_label}} (as we did in this tutorial),
click on .
You will have to select which headers between the one proposed in the table you want to link with this
component.
Once you've selected the headers, click on OK and you will see now that the component is now ready to be
extracted
Here you can see the button because you have already created this {{model_type_label}} component in your investigation
tree;
No button will appear otherwise !!
In this case, you need to either, add the component when you link the column or go back in the project tree
to add the corresponding MIAPPE component !!
If you have already created the {{model_type_label}} (as we did in this tutorial), you can simply link our {{model_type_label}} to your data.
Here you can see the button because you have already
created this MIAPPE component in your investigation tree;
No button will appear otherwise !!
In this case, you need to either, add the component when you link the column or go back in the project tree to
add the corresponding MIAPPE component !!
You do not have data file in your investigation, please add one with Datafiles from tabular files action from the investigation node !!!


Server Status
Information Retrieved:
Uptime:
Temp:
°C
CPU Load:
Graphs:
Temperature
Realtime
Minute
Hour
Day
CPU Load
Realtime
Minute
Hour
Day
Network Stats:
Down:
Up:
Memory Stats:
#
Total
Used
Free
Shared
Buffers
Cached
Memory
-/+ buffers/cache
-
-
-
-
Swap
-
-
-
Drive Stats:
Partition
Total
Used
Free
Mount Point
/dev/sda1
/
/dev/sdb2
/mnt/hdd1
/dev/sdc2
/mnt/hdd0
Total
-


{% comment %} Figure out whether this conditional check actually works properly the point is to keep out the staging server {% endcomment %} {% if (site.url != 'commonwl.org') and (site.url != 'www.commonwl.org') %} {% endif %} {%- seo -%} {%-if (site.url == 'commonwl.org') or (site.url == 'www.commonwl.org') -%} {%- include google-analytics.html -%} {%-endif -%} {%- if jekyll.environment == 'production' and site.google_analytics -%} {%- include google-analytics.html -%} {%- endif -%} {%- include custom-head.html -%}


All Packages Class Hierarchy This Package Previous Next Index
Interface javax.servlet.ServletResponse
- public interface ServletResponse
Interface for sending a MIME datum from the servlet's service method
to the client. Network service developers implement this interface;
its methods are then used by servlets when the service method is
run, to return data to clients. The ServletResponse object is passed
as an argument to the service method..
-
getOutputStream()
- Returns an output stream for writing response data.
-
setContentLength(int)
- Sets the content length for this response.
-
setContentType(String)
- Sets the content type for this response.
setContentLength
public abstract void setContentLength(int len)
- Sets the content length for this response.
- Parameters:
- len - the content length
setContentType
public abstract void setContentType(String type)
- Sets the content type for this response.
- Parameters:
- type - the content's MIME type
getOutputStream
public abstract ServletOutputStream getOutputStream() throws IOException
- Returns an output stream for writing response data.
- Throws: IOException
- if an I/O exception has occurred
All Packages Class Hierarchy This Package Previous Next Index


Blogs
Home
Blogs.
Curriculum Vitae
Security
Cryptography
Firewalls
Software for GNU+Linux and FreeBSD
Software for Windows
Batch To PowerShell
Christianity and the Holy Bible
Islam and the Quran


The Legend of 1900 A film review by Marty Mapes Copyright 1999 Marty Mapes
***1/2 (out of 4) THE LEGEND OF 1900 is an unconventional, imaginative fable about a man whose entire universe is a ship.
SUMMARY
The story is told by Max (Pruitt Taylor Vince), a sad and lonely guy who's giving up his career as a musician. He tells the story as he sells his trumpet to the man at the music shop.
The story begins after the passengers disembark in New York, on the first day of the first month of the new century -- 1900, that is -- a ship worker (Bill Nunn) finds a baby on the piano in the ship's lounge. He names the boy 1900 (for short) and raises him in the boiler room of the ship.
One day the boy is found playing the piano. He has a natural talent for it, and so moves out of the boilers to the upper decks of the ship, where he entertains the passengers.
The talent of 1900 (now played by Tim Roth) is enormous. He can play any style of music, even from just a hummed scrap of a tune. One of his favorite styles is jazz, and he earns a sterling reputation as a jazz pianist. Some say he's even better than Jelly Roll Morton.
Jelly Roll (played with fierce pride by Clarence Williams) takes this challenge seriously. Since 1900 refuses to set foot on land, Jelly Roll books a trip across the Atlantic, just to meet this man -- and to put him in his place. In one of the most memorable scenes, Jelly Roll and 1900 have a musical duel.
In another episode, 1900 comes as close as he ever will to falling in love. As he plays a ballad for a new recording, he notices a girl on the other side of the porthole. The song becomes his love for her.
ANALYSIS
Two of the best things about THE LEGEND OF 1900 are clear in these scenes. The first is that, because the story is told AS A STORY, the movie is allowed to take on an imaginative, slightly-exaggerated, storybook feel. The exaggeration stops well short of zaniness. There is merely enough to give the characters a larger-than-life charm. (That's something Tornatore did well in CINEMA PARADISO, too)
The second is that Tornatore acknowledges that music is important to the movie, and lets it play for a long time. This is worth mentioning because a lot of directors don't show music scenes for very long – they're hard to film in a way that's not boring. (Recall Jane Horrocks' "evening" of music in LITTLE VOICE. It was compressed down to about 5 minutes of screen time, even though it was the film's whole RAISON D'ETRE. A more recent example is the penultimate scene in MUSIC OF THE HEART, where no composition gets more than about 30 seconds of screen time.)
Ennio Morricone wrote most of the music for this movie, and he was the perfect choice. Morricone's music often seems weird and unconventional -- as though he had no formal training in how music is "supposed" to be. (Think of the screamed and quacked voices in the theme from THE GOOD, THE BAD, AND THE UGLY.) 1900's music isn't THAT far-out, but Morricone's unconventional-yet-functional style is perfect for the character of 1900, who is self-taught and musically isolated.
The acting by Roth and Vince is impeccable. Although Roth's part was smaller than it at first seems, he captured the shy, fragile charm of 1900. He wasn't listed in the music credits at the end, but he knew enough piano to look like he was really doing it. And even though Vince has acted in a dozen movies, he's never had a part this big. Vince has darting eyes, which might seem a hindrance, but they add to the pathos and sympathy of his character.
One final trait of THE LEGEND OF 1900 is worth mentioning: the cinematography by Lajos Koltai. A few scenes in particular are noteworthy. One is the fluid, energetic photography of the great piano duel. As I said, most filmmakers can't shoot music performances without making them boring. Tornatore was able to make his performances last longer by letting Koltai shoot some great stuff.
The other great-looking scene was of the first meeting between 1900 and Max. Max was seasick and 1900 had the perfect cure. I won't say more, except that the cinematography in this scene won me over completely.
CONCLUSION
Roger Ebert gave THE LEGEND OF 1900 a so-so review because he didn't completely understand the character of 1900. I can't say I understood him any better, but that's not what this movie was saying to me.
The innocent, charming fable is supported so well by the music, the cinematography, and the manner of storytelling, that I can't see THE LEGEND OF 1900 as anything but a success. -- ___________ Marty Mapes<EMAIL_ADDRESS>Movie Habit http://www.moviehabit.com
"Get the attorney general with a copy of the Constitution" -- Glenn Close, Air Force One
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


|
||||||||||
| PREV LETTER NEXT LETTER | FRAMES NO FRAMES |
Document
by writing it to a validating
SAX Parser.
valueOf
evaluates an XPath expression and returns the
textual representation of the results the XPath string-value of this
node.
valueOf
evaluates this XPath expression and returns the
textual representation of the results using the XPath string() function.
Document
DocumentType
Element
Attribute
CDATA
Comment
Entity
Namespace
ProcessingInstruction
Text
Visitor
is used to implement the Visitor
pattern in DOM4J.VisitorSupport
is an abstract base class which is useful for
implementation inheritence or when using anonymous inner classes to create
simple Visitor
implementations.
|
||||||||||
| PREV LETTER NEXT LETTER | FRAMES NO FRAMES |


WITNESS LIST Higher Education Committee March 23, 1999-4:00P HB 1027 Registering, but not testifying: On: Nicholas, Richard (Texas Woman's University) HB 1804 On: Walker, Bruce (Self) HB 1932 For: Fatehi, Parisa (Self) Ferguson, Brian (Self and UT as member elect of Texas Union Board of Directors) Holand, Annie (The University of Texas at Austin Student Government) Mehta, Parag V. (Self) Pickle, J. J. "Jake" (Self) Against: Griffiths, Devin (Self) Lobb, George (Self) Mohammed, Sonia (Self) On: Vick, James W. (Vice President for Student Affairs, UT Austin) Registering, but not testifying: For: Cobb, Dean (Self) Against: Morris, Claire (Self) HB 2089 For: Grimes, Gant A. (Midwestern State University Student Body) Registering, but not testifying: On: Rodriguez, Louis J. (Self and Midwestern State University) HB 2181 On: Lee, Elwyn C. (University of Houston) Ray, Justin (University of Student Body Government; Student Government) HB 2622 On: Adauto, Richard (Self) Diebel, Phil (Self) Tenery, Walter (Self) HB 2664 For: Bennett, Leon (Southern Methodist University) Registering, but not testifying: For: McDonald, Carol L. (Independent Colleges and Universities of Texas) Thomson, Basil H. (Baylor University) HB 3313 For: Flores, Jose Luis (Self and Mayor of City of Laredo) Guevara, Daniel (Self and Mercy Regional Medical Center) Iruegas, Javier (Self and Mercy Health System of Texas) On: Cunningham, William H. (The University of Texas System) Howe, III, John P. (University of Texas Health Science Center - San Antonio) Jennett, Charles (Texas A & M International University) Registering, but not testifying: For: Castaneda, Jr., Tristan (The Greater San Antonio Chamber of Commerce) On: Kazen, James D. (Self and University of Texas Health Science Center at San Antonio) Price, Robert B. (Self)


This is another example of the FormatHandler interface being used to define a mesh loader plugin for the OpenCTM format.
The displayed mesh (RAF-22031) is from the OpenCTM sample set. The model was designed by Alexander V. Belov, and can be found at The3dStudio.com. The plugin uses the open source js-openctm library. Here is the js-openctm license.
The displayed mesh (RAF-22031) is from the OpenCTM sample set. The model was designed by Alexander V. Belov, and can be found at The3dStudio.com. The plugin uses the open source js-openctm library. Here is the js-openctm license.


pollution is the process of making land, water, air or other parts of the environment dirty and not safe// or suitable to use. This can be done through the introduction of a
contaminant into a natural environment, but the contaminant doesn't need to be tangible. Things as simple as light, sound and temperature can be considered pollutants when
introduced artificially into an environment.
Toxic pollution affects more than 200 million people worldwide, according to Pure Earth, a non-profit environmental organization. In some of the world's worst polluted places,
babies are born with birth defects, children have lost 30 to 40 IQ points, and life expectancy may be as low as 45 years because of cancers and other diseases.
water pollution
British poet W. H. Auden once noted, “Thousands have lived without love, not one without water.” Yet while we all know water is crucial for life, we trash it
anyway. Some 80 percent of the world’s wastewater is dumped—largely untreated—back into the environment, polluting rivers, lakes, and oceans.
This widespread problem of water pollution is jeopardizing our health. Unsafe water kills more people each year than war and all other forms of violence combined.
Meanwhile, our drinkable water sources are finite: Less than 1 percent of the earth’s freshwater is actually accessible to us. Without action, the challenges
will only increase by 2050, when global demand for freshwater is expected to be one-third greater than it is now.
Sip a glass of cool, clear water as you read this, and you may think water pollution is a problem . . . somewhere else. But while most Americans have access to safe drinking water
, potentially harmful contaminants—from arsenic to copper to lead—have been found in the tap water of every single state in the nation.
Still, we’re not hopeless against the threat to clean water. To better understand the problem and what we can do about it, here’s an overview of
what water pollution is, what causes it, and how we can protect ourselves.
What Is Water Pollution?
Water pollution occurs when harmful substances—often chemicals or microorganisms—contaminate a stream, river, lake, ocean, aquifer, or other body of water, degrading water quality
and rendering it toxic to humans or the environment.
What Are the Causes of Water Pollution?
Water is uniquely vulnerable to pollution. Known as a “universal solvent,” water is able to dissolve more substances than any other liquid on earth. It’s the reason we have
Kool-Aid and brilliant blue waterfalls. It’s also why water is so easily polluted. Toxic substances from farms, towns, and factories readily dissolve into and mix with it,
causing water pollution.
Categories of Water Pollution
Groundwater
When rain falls and seeps deep into the earth, filling the cracks, crevices, and porous spaces of an aquifer (basically an underground storehouse of water), it becomes
groundwater—one of our least visible but most important natural resources. Nearly 40 percent of Americans rely on groundwater, pumped to the earth’s surface, for drinking water.
For some folks in rural areas, it’s their only freshwater source. Groundwater gets polluted when contaminants—from pesticides and fertilizers to waste leached from landfills
and septic systems—make their way into an aquifer, rendering it unsafe for human use. Ridding groundwater of contaminants can be difficult to impossible, as well as costly.
Once polluted, an aquifer may be unusable for decades, or even thousands of years. Groundwater can also spread contamination far from the original polluting source as it seeps
into streams, lakes, and oceans.
Surface water
Covering about 70 percent of the earth, surface water is what fills our oceans, lakes, rivers, and all those other blue bits on the world map. Surface water from freshwater sources
(that is, from sources other than the ocean) accounts for more than 60 percent of the water delivered to American homes. But a significant pool of that water is in peril.
According to the most recent surveys on national water quality from the U.S. Environmental Protection Agency, nearly half of our rivers and streams and more than one-third
of our lakes are polluted and unfit for swimming, fishing, and drinking. Nutrient pollution, which includes nitrates and phosphates, is the leading type of contamination in
these freshwater sources. While plants and animals need these nutrients to grow, they have become a major pollutant due to farm waste and fertilizer runoff. Municipal and
industrial waste discharges contribute their fair share of toxins as well. There’s also all the random junk that industry and individuals dump directly into waterways.
Don't let the Trump administration pollute our drinking water
**TAKE ACTION
***Ocean water
Eighty percent of ocean pollution (also called marine pollution) originates on land—whether along the coast or far inland. Contaminants such as chemicals, nutrients,
and heavy metals are carried from farms, factories, and cities by streams and rivers into our bays and estuaries; from there they travel out to sea. Meanwhile,
marine debris—particularly plastic—is blown in by the wind or washed in via storm drains and sewers. Our seas are also sometimes spoiled by oil spills and leaks—big
and small—and are consistently soaking up carbon pollution from the air. The ocean absorbs as much as a quarter of man-made carbon emissions.
if you are area affected in this pollution please share your polluted photo
land pollution
What Is Land Pollution
The basic definition of land pollution is the destruction and contamination of the land through the direct and indirect actions of humans. The pollution results in changes
to the land, such as soil erosion. Some of the changes are irreversible, while others are not.
The effects of land pollution do not necessarily appear overnight. It is the result of long-term destruction from human activities. For instance, the damage from chemicals
from an oil spill can take months or even years to be fully realized.
Causes of Land Pollution
There are several known causes of land pollution. Of those, there are six factors that contribute more than others.
1. Deforestation and soil erosion
When forests are cleared for development and to meet the demand for wood supply, the soil is loosened in the process. Without the protection of the trees, the land becomes
barren over time and starts to erode.
2. Agricultural chemicals
Part of the farming process often involves the use of harmful pesticides and insecticides to protect crops. However, the chemicals can cause the land to become barren.
The once-fertile soil is then more susceptible to environmental elements, such as the wind.
Effects of Land Pollution
The contamination of the land has far-reaching consequences that can be catastrophic for water, soil, and animals. There are several possible consequences of land pollution
to the environment and animals, including these top two:
1. Ground water poisoning
Depending on the soil and whether the chemicals were improperly disposed of on the land, the chemicals could end up in the ground water. The process is known as leaching.
It can occur on farms, industrial sites, and landfills.
2. Water nutrient enrichment
is populated by fish, algae, and other lifeforms. The nutrient-heavy water saps up most of the oxygen in the water, which leaves little for fish and other life. When this
happens, the water is unable to support most lifeforms. For more information on water polution, click here.
Effects of Land Pollution on Humans
The impact of land pollution is not limited just to the earth and animals. Humans can also experience negative consequences that can influence quality of life and health.
Some of the potential consequences include birth defects, the development of breathing disorders, skin diseases, and cancer. Most of these develop after exposure to waste
from water poisoning and soil contamination.
Land pollution has also been linked to developmental deficits in children. Chemicals that are commonly found in contaminated soil and water, such as lead, have can impact
a child’s cognitive development even if the exposure is very low.
trash dump environment
Solutions to Land Pollution
There are several possible solutions to land pollution, including conservation. Conservation focuses on preserving natural resources, such as soil and plants.
The efforts to conserve resources can start with utilizing sustainable practices.
For instance, leaving some of the trees in a forest to naturally die and decay. This not only leaves the cover needed for the soil and other vegetation, but it helps to
provide the nutrients that the soil needs to remain fertile. Other solutions include:
Proper waste disposal that focuses on treating waste and disposing it in the safest manner possible.
Reusing materials to reduce the need for harvesting of resources. Products that are not reusable can likely be recycled.
Reducing the usage of non-biodegradable materials, such as plastic shopping bags. The simple act of switching to a reusable cloth bag for groceries can help
cut down on the need for non-biodegradable materials.
Organic gardening can reduce the usage of pesticides and insecticides. Non-gardeners can help by buying organic food.
sound pollution
Noise pollution, unwanted or excessive sound that can have deleterious effects on human health and environmental quality. Noise pollution is commonly generated inside
many industrial facilities and some other workplaces, but it also comes from highway, railway, and airplane traffic and from outdoor construction activities.
Note: The video tag is not supported in Internet Explorer 8 and earlier versions.
air pollution
Air pollution is a mix of particles and gases that can reach harmful concentrations both outside and indoors. Its effects can range from higher disease risks to rising
temperatures.
In the U.S., one measure of outdoor air pollution is the Air Quality Index, or AQI which rates air conditions across the country based on concentrations of five major
pollutants: ground-level ozone, particle pollution (or particulate matter), carbon monoxide, sulfur dioxide, and nitrogen dioxide. Some of those also contribute to
indoor air pollution, along with radon, cigarette smoke, volatile organic compounds (VOCs), formaldehyde, asbestos, and other substances.
if you are area affected in this pollution please share your polluted photo


Full-Stack Web Developer & Experienced Chemistry Instructor
Find Out MoreI have been drawn to technology since childhood, having grown up as the daugther of a mechanical engineer. I have always been a technology innovator. With formal training in full-stack development, I am interested in both front-end and back-end engineering. As an experienced chemistry instructor, I have strong collaboration, communication, and leadership skills.
SkillsThis is the foundation for all of my skills.
Back-end technology of choice, with the ability to produce anything.
Requesting, updating, and manipulating data is vital.
Aesthetics are just as important to me as functionality.
Using a robust front-end framework helps simplify the easy stuff to work on solving more complex problems.
I know how to be the most efficient with accessing the true power of a computer.
Ready to start your next project with me? Call or send me an email and I will get back to you as soon as possible. In the meantime, check out the projects I am currently working on-


Berkeley DB currently offers three access methods: Btree, Hash and Recno.
The Btree access method is an implementation of a sorted, balanced tree structure, more specifically a B+tree. Searches, insertions, and deletions in the tree all take O(log base_b N) time, where base_b is the average number of keys per page, and N is the total number of keys stored. Often, inserting ordered data into btree implementations results in pages that are half-full. This implementation has been modified to make ordered (or inverse ordered) insertion the best case, resulting in nearly perfect page space utilization.
Space freed by deleting key/data pairs from a Btree database is never reclaimed from the filesystem, although it is reused where possible. This means that the Btree storage structure is grow-only. If sufficiently many keys are deleted from a tree that shrinking the underlying database file is desirable, this can be accomplished by creating a new tree from a scan of the existing one.
The Hash access method data structure is an implementation of Extended Linear Hashing, as described in Linear Hashing: A New Tool for File and Table Addressing, Witold Litwin, Proceedings of the 6th International Conference on Very Large Databases (VLDB), 1980.
The Recno access method is an implementation of Fixed and Variable-length records, optionally backed by a flat text (byte stream) file. Both fixed and variable length records are accessed by their logical record number.
It is valid to create a record whose record number is more than one greater than the last record currently in the database. For example, the creation of record number 8, when records 6 and 7 do not yet exist, is not an error. However, any attempt to retrieve such records (e.g., records 6 and 7) will fail.
By default, deleting a record will not renumber records following the deleted record. Any attempt to retrieve deleted records will fail.


{% extends 'brambling/event/organizer/__base.html' %} {% load zenaida static %} {% block title %}Copy Event – {{ block.super }}{% endblock %} {% block main %} {{ block.super }} {% url "brambling_event_attendees" event_slug=event.slug organization_slug=event.organization.slug as attendees_url%}
Make a copy of this event with the same settings and items in any organization you control.
{% endblock %}


Eat-Da-Burger!
Type a burger, save it, devour it, then delete!
Type a burger:
Add Burger
Burgers on the list


myspace
Posted:
Sun Apr 01, 2007 3:43 pm
by Liberate My Sadness
Does anyone have a myspace? i have one.
http://www.myspace.com/39858278
Posted:
Sun Apr 01, 2007 5:50 pm
by Karl G.
I used to, but then I got facebook and now I don't check it anymore
Posted:
Mon Apr 02, 2007 7:45 am
by Joe M.
facebook's where it's at.
 I swear it makes my eyes bleed
Posted:
Wed May 23, 2007 11:20 pm
by Summoner
Both are for emotional homosexuals.
Posted:
Wed May 23, 2007 11:40 pm
by a_link_to_the_past
Nothing wrong with showing emotions
Posted:
Thu May 24, 2007 1:49 am
by Summoner
Oh, but there is when you're a complete emo and slit your wrists for attention.
Posted:
Sun Jun 03, 2007 10:31 pm
by a_link_to_the_past
yeah... that migh be going a little overboard..


--- layout: home custom_js: home ---
| Cameron Doyle | |
| Edinburgh, Scotland | |
| Software Engineer | |
| FanDuel |
I was born, raised, and educated in the beautiful north-east of England, first in the small seaside town of Blyth in south-east Northumberland, and later in the thriving city of Newcastle-upon-Tyne. After graduating in 2014 from Newcastle University, I moved north of the border to live and work in Edinburgh.
From a young age, I've had a keen interest in all things technical, although I've never been able to pinpoint the start of this fascination. I enjoy writing code, designing and developing programs and games, and expanding my repertoire of languages and technologies. Most of my code projects are available on GitHub.
When I'm AFK, I spend as much time as physically possible travelling the world, immersing myself in local cultures, and adding to my ever-expanding collection of Hard Rock Café t-shirts. When I'm not on the road (and sometimes when I am), I spend an unhealthy amount of time and money on my other two vices; third-wave coffee and single-malt Scotch.
I currently live in Edinburgh with my better half and our two dogs; Charlie and Sid. I spend a lot of my free time running and Canicross-ing, and I'm also currently learning to speak German. In between everything else, I also have a keen interest in behavioural economics, politics, and podcasts (my favourites include Freakonomics, Radiolab, Planet Money, and 99% Invisible).
| Language | Experience | Proficiency |
|---|---|---|
| Java | 7 years | Proficient |
| Angular | 6 months | Familiar |
| TypeScript | 2 years | Familiar |
| AngularJS | 1 year | Familiar |
| C++ | 2 years | Familiar |
| HTML5 | 3 years | Proficient |
| CSS3 | 3 years | Proficient |
| PHP | 1 year | Familiar |
| JavaScript | 5 years | Familiar |
| SQL/MySQL | 3 years | familiar |
| Software | Experience | Proficiency |
|---|---|---|
| IntelliJ IDEA | 3 years | Proficient |
| Eclipse | 4 years | Proficient |
| Visual Studio | 2 years | Familiar |
| JMeter | 2 years | Proficient |
| JIRA | 2 years | Proficient |
| Git | 4 years | Familiar |
| JBoss | 1 year | Familiar |
| VS Code | 2 years | Familiar |
Since University, the primary language I've used to develop has been Java (currently working with Java 11). I have experience of writing Java software in several independent programs, ranging from small independent projects to multi-million line codebases. I have knowledge of many data structures and algorithms, and can use them effectively.
Most recently, I have developed microservice applications and integrated them into a wider vanilla-Java architecture using the Spring Framework.
HTML was the first language I starting playing about with, well over fifteen years ago. Since then, I've built a whole bunch of websites in HTML4, XHTML, and more recently, various Javascript frameworks.
I have gained most of my recent Javascript experience using the AngularJS and Angular frameworks. I am currently working on a project to port this CV site into an Angular application.
I started at FanDuel in autumn 2019, working primarily with Java microservices and Python APIs in the Account & Wallet sector Read more
Since joining FanDuel, I have been primarily working on a migration project to convert existing users in a third-party systems into our in-house solution. This has given me the opportunity to learn about the FanDuel project methodologies from the ground up, as well as having an immediate meaningful impact on a visible and important project for the company.
I joined Avaloq as a software engineer in the spring of 2017, working primarily as a Java developer in one of the web banking teams. Read more
Throughout my time at Avaloq, I worked primarily in the middle server tier as a Java developer, with some occassional work in JavaScript/AngularJS/Angular on the front end, and PL/SQL in the back end. During my final year, I also worked with developing a Spring microservice and integrating it successfully with the main server tier.
I was the senior developer, and SME, for several key areas within our project, responsible for implementing new innovations and managing the maintenance of these areas. I developed strong relationships with key customers, implemented new functionality to meet client needs, and steered the components through various upgrade cycles and improvements.
I was the primary scrum master within my team, following a variation of the SAFe Scaled Agile methodology. My role involved mentoring my team, handling and prioritising customer issues and requests, and managing the delivery and scheduling of our array of supported software versions.
I rejoined CGI as a graduate in the summer of 2014, and began working in various roles in the Government sector, including Java development, performance, and team management. Read more
After spending over a year learning and working as a performance analyst and team lead, I changed roles to work deeper in the development cycle of the system. I'm currently working as a Java developer in a team of six, using JBoss BRMS and Fuse.
I work using a test-driven development process, using JUnit for unit tests and EclEmma for code coverage to provide assurances for my code quality. Other software and technologies used include Oracle SQL, SoapUI, Maven, Subversion, and Jenkins.
Having worked as a performance analyst for several months, I was promoted to team lead for non-functional testing within the AFRC project, training three new members in performance testing and analysis, and managing the performance test schedule. I advised senior client management on performance metrics and directions, and worked closely with database and deployment managers to ensure a continued smooth transition to live.
After my initial few months at the Scottish Government with systems integration and working my way up to team lead, I joined the non-functional team working as a performance analyst. Here, I learned about load-testing and performance metrics, and rebuilt the project's performance testing suite in JMeter from the ground up. The role required me to liaise closely with senior client management, helping me develop important negotiation and client communication skills.
In the summer of 2014, I graduated from the University of Newcastle-Upon-Tyne with an upper second-class honours (2:1) degree in Computer Science. Read more
At Newcastle, I was awarded first-class marks for my work in Mobile Development, Programming for Games, Graphics for Games, Games Development, Server-side Web Development, and Cryptography. I also studied Advanced Programming, Database Technologies, Computer Networks, Modelling and Computation, Algorithm Design and Analysis, Internet Technology, and Software Project Management.
My final dissertation project was focused on designing and developing a travel-planning website and mobile application. This was developed using PHP and Android, as well as SQL and server technologies, and was awarded upper second-class marks.
During my degree studies, I spent a year in industry working for the IT consulting firm Logica (now CGI) . At Logica, I worked as a business and test analyst within the Financial Services sector, developing business scenarios for the client, and designing development criteria for our team of off-shore developers.
You can contact me on LinkedIn , although you're more likely to get a response if you drop me an email at {{ site.author.email }} using the form below.


Package algorithms.graphs
Class MaximalIndependentSets
- java.lang.Object
-
- algorithms.graphs.MaximalIndependentSets
-
public class MaximalIndependentSets extends java.lang.Object
- Author:
- nichole
-
-
Constructor Summary
Constructors Constructor Description MaximalIndependentSets()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static gnu.trove.set.TIntSet
extractAllVertices(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
(package private) static gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet>
extractInOut(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
static java.util.List<gnu.trove.set.TIntSet>
findAllMaximum(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap, int nV)
find all maximum independent sets for the given directed graph represented by adjMap.(package private) static java.util.List<gnu.trove.set.TIntSet>
findAllMaximum(java.util.Set<gnu.trove.set.TIntSet> s, gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
find all maximum independent sets for the given directed graph represented by adjMap.static java.util.List<gnu.trove.set.TIntSet>
findAllMaximum2(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap, int nV)
find all maximum independent sets for the given directed graph represented by adjMap.static gnu.trove.set.TIntSet
findOne(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
Find a maximal independent set in graph G defined by the given adjacency map using a sequential algorithm.static gnu.trove.set.TIntSet
findOneProbabilistic(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
Find a maximal independent set in graph G defined by the given adjacency map using In graph theory, a maximal independent set (MIS) or maximal stable set is an independent set that is not a subset of any other independent set.(package private) static void
sort(java.util.List<PairInt> edgeConflicts, gnu.trove.list.TIntList edgeDegreesLow)
(package private) static gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet>
subgraph(gnu.trove.set.TIntSet vP, gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
creates subgraph of adjMap out of vertexes vP.
-
-
-
Method Detail
-
findOneProbabilistic
public static gnu.trove.set.TIntSet findOneProbabilistic(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
Find a maximal independent set in graph G defined by the given adjacency map using In graph theory, a maximal independent set (MIS) or maximal stable set is an independent set that is not a subset of any other independent set. In other words, there is no vertex outside the independent set that may join it because it is maximal with respect to the independent set property. An independent set, stable set, coclique or anticlique is a set of vertices in a graph, no two of which are adjacent. r.t.c. O( log_2(n)^2 )References: Lecture Notes on a Parallel Algorithm for Generating a Maximal Independent Set Eric Vigoda Georgia Institute of Technology Last updated for 7530 - Randomized Algorithms, Spring 2010. https://www.cc.gatech.edu/~vigoda/7530-Spring10/MIS.pdf https://en.wikipedia.org/wiki/Maximal_independent_set#Listing_all_maximal_independent_sets
- Parameters:
adjMap
- adjacency map of undirected graph G with key = vertex u and value = set of neighbors connected to u.- Returns:
- returns a maximal independent set of undirected graph G defined by adjMap
-
findOne
public static gnu.trove.set.TIntSet findOne(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
Find a maximal independent set in graph G defined by the given adjacency map using a sequential algorithm. In graph theory, a maximal independent set (MIS) or maximal stable set is an independent set that is not a subset of any other independent set. In other words, there is no vertex outside the independent set that may join it because it is maximal with respect to the independent set property. An independent set, stable set, coclique or anticlique is a set of vertices in a graph, no two of which are adjacent. runtime complexity is O(log_2(|E|).References: The sequential algorithm in this: Lecture Notes on a Parallel Algorithm for Generating a Maximal Independent Set Eric Vigoda Georgia Institute of Technology Last updated for 7530 - Randomized Algorithms, Spring 2010. https://www.cc.gatech.edu/~vigoda/7530-Spring10/MIS.pdf https://en.wikipedia.org/wiki/Maximal_independent_set#Listing_all_maximal_independent_sets
- Parameters:
adjMap
- and adjacency map with key = vertex u and value = set of neighbors connected to u.- Returns:
- returns a maximal independent set of graph G defined by adjMap
-
findAllMaximum
public static java.util.List<gnu.trove.set.TIntSet> findAllMaximum(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap, int nV)
find all maximum independent sets for the given directed graph represented by adjMap. The method internally builds a bipartite graph and then aggregates the matching sets of vertices into independent sets of maximum size. runtime complexity is:- Parameters:
adjMap
- directed graph G as an adjacency mapnV
- the number of vertexes- Returns:
- returns a list of all maximum independent sets. note that a complete graph will return an empty list.
-
findAllMaximum2
public static java.util.List<gnu.trove.set.TIntSet> findAllMaximum2(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap, int nV)
find all maximum independent sets for the given directed graph represented by adjMap. The method internally builds the complement graph of G, then the maximum matching bipartite graph and then aggregates the matching sets of vertices into independent sets of maximum size. runtime complexity is:- Parameters:
adjMap
- directed graph G as an adjacency mapnV
- the number of vertexes- Returns:
- returns a list of all maximum independent sets. note that a complete graph will return an empty list.
-
findAllMaximum
static java.util.List<gnu.trove.set.TIntSet> findAllMaximum(java.util.Set<gnu.trove.set.TIntSet> s, gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
find all maximum independent sets for the given directed graph represented by adjMap. The method internally builds a bipartite graph and then aggregates the matching sets of vertices into independent sets of maximum size. runtime complexity is:- Parameters:
s
-adjMap
- directed graph G as an adjacency map- Returns:
- returns a list of all maximum independent sets. note that a complete graph will return an empty list.
-
extractInOut
static gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> extractInOut(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
-
extractAllVertices
static gnu.trove.set.TIntSet extractAllVertices(gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
-
sort
static void sort(java.util.List<PairInt> edgeConflicts, gnu.trove.list.TIntList edgeDegreesLow)
-
subgraph
static gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> subgraph(gnu.trove.set.TIntSet vP, gnu.trove.map.TIntObjectMap<gnu.trove.set.TIntSet> adjMap)
creates subgraph of adjMap out of vertexes vP. note that it also creates edges uv and vu as G is undirected, and in order to make the degree counting easier where needed.- Parameters:
vP
-adjMap
-- Returns:
-
-


{% extends "layouts/modal.html" %}
{% load i18n %}
{% load account %}
{% block title %}{% trans "Confirm E-mail Address" %} | {{ block.super }}{% endblock %}
{% block main %}
{% user_display confirmation.email_address.user as user_display %}
{% blocktrans with confirmation.email_address.email as email %}You have confirmed that {{ email }} is an e-mail address for user {{ user_display }}.{% endblocktrans %}


--- layout: page title: "Projetos" description: "Meus projetos" header-img: "img/projects/projectsbg.jpg" og-img: "/img/projects/projectsbg.jpg" meta-description: Meus projetos --- {% include projects.html %}


MILLENNIUM A film review by Mark R. Leeper Copyright 1989 Mark R. Leeper
Capsule review: This adaptation of John Varley's short story "Air Raid" is downbeat and surprisingly cliched. This is a minor film with a 1960s matinee sort of feel, in spite of a little interesting time paradox plotting. Rating: low 0.
MILLENNIUM is one of those film projects that seem to take forever to come to fruition; then the fruit turns out to be a lemon. I happen to like some lemons but they are not to everybody's taste. Years ago, there were rumors that somebody was going to base a film either on John Varley's novel MILLENNIUM or the short story the novel was expanded from, "Air Raid." Well, it came out finally based on the latter but named for the former. Varley himself is credited with the screenwriting, though it should be noted that screen credit is dubious. As far as I know Varley has no experience screenwriting and the script is really very different from the short story. And rather than the accomplished and creative story-telling of a popular science fiction, MILLENNIUM has more the feel of mediocre matinee science fiction films of the 1960s and in particular Ib Melchior's THE TIME TRAVELERS.
[Minor spoilers follow, but no worse than were in the coming attraction.] This downbeat science fiction film starts with a spectacular collision of two airliners and the resulting crash. Enjoy the special effect. It is the only one in the film both ambitious and convincing. Bill Smith is the bland name of the even blander Federal agent sent to investigate the crash. Smith is played by a bland Kris Kristofferson. Smith runs into the chain-smoking Louise Baltimore (played by Cheryl Ladd). Baltimore is not exactly what she seems to be. Instead she is a visitor from a thousand years in the far future where she wears a punk hairdo distressingly like what you are already starting to see in New York City. Baltimore is on a mission involving air disasters. Just what she is doing is part of the mystery.
The script for MILLENNIUM needs some clarification. There is an apparently unintentional ambiguity in the story-telling. The script clearly tries to clarify which interpretation is correct, but does so inconclusively and unclearly. With the exception of a few half-hearted humorous moments, the writing is all very downbeat and at the same time hokey. The film's vision of the future is as hopeless as it is hopelessly unconvincing. The film returns to 1960s science fiction film conventions such as having a convenient scientist along to explain the idea of the film. Then there is an attempted love interest between two stars as animated as a Ken and Barbie doll and whose love is just about as interesting to the audience.  In short, MILLENNIUM is easily better than some other adaptations of real science fiction stories--films such as NIGHTFALL and NIGHTFLYERS--but it is far from being a winner. I rate it a low 0 on the -4 to +4 scale.
Mark R. Leeper att!mtgzx!leeper<EMAIL_ADDRESS>Copyright 1989 Mark R. Leeper .
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


| Overview | Module | Use | Devguide | Index |
| uses of exception WrongStateException |
back to exception WrongStateException |
| Derived Exceptions |
NeedsRunningStateException StateChangeInProgressException |
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.