RUNAWAY TRAIN
A Film Review by James Berardinelli
RATING: ***1/2 OUT OF ****
United States, 1985 U.S. Release Date: 1/17/86 (wide) Running Length: 1:51 MPAA Classification: R (Violence, profanity) Theatrical Aspect Ratio: 1.85:1
Cast: Jon Voight, Eric Roberts, Rebecca De Mornay, Kyle T. Heffner, John P. Ryan, Kenneth McMillan Director: Andrei Konchalovsky Producers: Menahem Golan, Yoram Globus Screenplay: Djordje Milicevic, Paul Zindel and Edward Bunker, based on a screenplay by Akira Kurosawa Cinematography: Alan Hume Music: Trevor Jones U.S. Distributor: Cannon
Long before Keanu Reeves was stuck on board a speeding bus, Jon Voight, Eric Roberts, and Rebecca De Mornay were trapped on a runaway train. And, while there are significant differences between Jan De Bont's SPEED and Andrei Konchalovsky's 1985 thriller, RUNAWAY TRAIN, the films share two fundamental similarities: ferocious pacing and white- knuckle excitement. Each picture features its own take on an unstoppable, high-velocity vehicle racing towards its doom.
Although SPEED is a very good movie, RUNAWAY TRAIN is a more complete experience. The script is better-written, depending more on visceral thrills than those enhanced by special effects (that's not to say that RUNAWAY TRAIN is visually defective -- in fact, it's solid). The characters are better-rounded, and there is a fascinating exploration of man's primal instinct. RUNAWAY TRAIN belongs to a rare genre: the intelligent thriller. It will come as no surprise to educated movie-goers to learn that the script, credited to Djordeje Milicevic, Paul Zindel, and Edward Bunker, is based on an original screenplay devised by the Japenese master, Akira Kurosawa. One can almost imagine Kurosawa regular Toshiro Mifune in the role given to Jon Voight.
Not that Voight doesn't place his own indelible stamp on the part of Manny, a hardened criminal who is serving a life sentence in a maximum security prison in Alaska. Manny has recently spent three years locked in solitary confinement. Upon his release, he is hailed as a hero by the rest of the prison population.  With Buck tagging along, Manny makes his way through the sewers under the prison, out into the cruel Alaskan wilderness, and to a remote train station. There, the two stowaway on a 4-engine train headed south, unaware that the engineer has died of a heart attack, and the only one else on board is Sara (Rebecca De Mornay), a female maintenance worker. The train is out of control and rushing down the tracks towards a collision with destiny.
RUNAWAY TRAIN uses a mix of diverse elements to create a highly- suspenseful whole. There's the nasty Warden (John P. Ryan) who yearns for a one-on-one confrontation with his most hated prisoner, and is willing to risk his own life to get on board the speeding train. There are the men at the railroad control station, desperately trying to divert other trains out of the path of the speeding engine, while weighing how important three lives are compared to the economic cost to the railway. Most importantly, there are the characters aboard the train and the taut dynamic that exists between them. We see a microcosm of humanity at its most base and noble through them, as their desperate circumstances drive them to acts of terrible brutality and surprising heroism. RUNAWAY TRAIN closes with an apt quote from Shakespeare's "Richard III" that reinforces another of the film's themes about the animalistic nature of human beings: "No beast so fierce but knows some touch of pity. But I know none, and therefore am no beast."
The most electric scene of the film takes place around the three- quarters mark, and reveals key, primal aspects of each individual's personality. It's a showdown between Manny and Buck over machismo, sacrifice, and friendship. The two circle each other, Manny with a knife, Buck with a wrench. "I thought you was my friend!  shouts Buck. Manny sneers. Although his hand is badly injured, it never occurs to him that Buck is a real threat. Meanwhile, along the periphery of the struggle, the seemingly-mild Sara screams at Buck, "Kill him!" It's a raw moment that not only keeps us on the edge of our seat, but gives us real insight into how these characters react in such dire circumstances. What follows after, as the film arcs to a climax, is believable because of what emerges during this confrontation.
The three lead actors all give strong performances, and are ably assisted by a solid supporting cast. Jon Voight captivates in one of the most memorable screen roles of his distinguished career, imbuing Manny with both a fierce energy and a surprisingly keen intellect. This is definitely not a common, stereotypical criminal. Eric Roberts, playing against type as a mentally-limited individual, presents Buck almost as a puppy dog who follows Manny around. Rebecca De Mornay abandons her glamorous image for layers of dirt and ragged clothes. Although De Mornay is not known for her range, she is singularly effective in this part.
When RUNAWAY TRAIN was produced, the action genre was undergoing a change from character-driven movies to pyrotechnics-based flicks. Of the thrillers developed after this one, only a select few -- DIE HARD and perhaps one or two others -- have achieved this level of tautness without compromising the intelligence of the plot. Best of all, in more than a decade since its release, RUNAWAY TRAIN has aged exceptionally well. It is just as compelling today as it was during the winter of 1985-86.
Copyright 1997 James Berardinelli
- James Berardinelli e-mail<EMAIL_ADDRESS>Now with more than 1300 reviews... The ReelViews web site: http://movie-reviews.colossus.net/
"No art passes our conscience in the way film does, and goes directly to our feelings, deep down into the dark rooms of our souls"
- Ingmar Bergman
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


---
layout: page
title: Quick GRITS
description: Getting Real In Talking Science
background: '/quickGRITS/qgBanner.png'
---
Quick GRITS Podcast
Quick GRITS (Getting Real In Talking Science) is a podcast of short episodes that provide listeners with a quick, entertaining look into the lives of biologists and what they study. You can stream episodes on Spotify here<\a> or download them here.
Episode 7: Sexy Ciliates Part 2
February 2022- Rebecca Zufall (Univ. of Houston) talks about the many sexes (mating types) and sexual/asexual reproduction strategies in ciliates.
Episode 6: Surreal Ciliates Part 1
February 2022- Rebecca Zufall (Univ. of Houston) talks about what ciliates are (their looks, genomic architecture, and life history) and where you can find them in part 1 of a 3-part conversation.
Episode 5: Harvesters Part 2
November 2021- Dr. Mercedes Burns talks about the beautifully strange arachnids known as harvesters and the evolution of sexual conflict in part 2 of a 2-part conversation
Episode 4: Harvesters Part 1
October 2021- Dr. Mercedes Burns talks about the beautifully strange arachnids known as harvesters and her path to evolutionary biology and arachnology in part 1 of a 2-part conversation
Episode 3: Brown Birds
July 2020- Rafael Marcondes (LSU) talks about why some birds are brown and others browner, Darwin and Wallace's thoughts on bird color evolution, and his journey to becoming an ornithologist
Episode 2: Rattlesnake Personalities
June 2020- Océane Da Cunha (UT- El Paso) talks about her experience and research with rattlesnake personalities and behavior
Episode 1: Frog Sex
May 2020- Kerry Cobb (Auburn Univ.) talks about the world of frog sex


A Modern C++11 Toolkit for the Internet of Things
A modern cross-platform C++11 Toolkit for creating intelligent connected devices, apps, plugins, controllers, robots, and more!
View GithubCross-platform software and firmware toolkit with Embedded-C++1x core for making just about anything.
An early-stage Artificial Intelligence and Machine Learning University for making intelligent robots with.
We are looking for contributors to help debug code!
With Google Angle, OpenAL, and Visual Studio 2015 you can write one GUI and audio library that runs runs on Windows, OSX, Linux, iOS, and Android!
All of the Kabuki Starship APIs are licensed under the Apache 2.0, BSD, MIT, and similar open-source software licenses, which is free to use for closed-source commercial purposes.
The Kabuki Starship is built completely around Searle's Chinese Room, Interprocess, and Telementry Protocol (Script). Script allows for secure sophisticated mapping of controls and interprocess communication for the Internet of Things.


USPS needs more kids to write to 'Operation Santa' program after letters run out
by WLSCHICAGO -- To say the United States Post Office's annual Santa letter program Operation Santa is a success may be an understatement.
The program launched online last Monday, and within that week, the website has run out of letters.
The goal of the campaign is to give kids who may not be able to otherwise, the happy holiday they deserve.
But the postal service wants to help more children and their families.
They want to encourage more deserving children to write, the postal service has a letter-writing kit with templates that can be accessed on the Operation Santa website.
Letters are addressed to:
123 Elf Road
North Pole, 88888
All letters should be postmarked by Dec. 14.
The idea began in 1912 with Postmaster General Frank Hitchcock, who authorized local Postmasters to allow postal employees and citizens to respond to the letters. The program eventually became known as Operation Santa.
To celebrate 107 years, USPS launched a new website for Operation Santa featuring letters from children across the country.
This year letters from Chicago along with 14 other cities will be displayed on the website through the holiday season.
Residents in Chicago will have a choice of browsing and adopting letters to Santa online or in person.
Letters for Operation Santa can be sent
Santa Claus
123 Elf Road, North Pole 88888
For people who wish to adopt some of the Christmas letters, find a post office that offers "Label Broker" as an on-site service to send the gift.
For more information on how to get involved visit the USPS FAQ.
For more information on how to adopt a letter visit uspsoperationsanta.com


|
|||||
|
If your roommate dies, you’ll get a 4.0. You know you’ve heard that rumor—and wondered if maybe, just maybe, it’s true. What about other college rumors? Our experts debunk these myths and give you the real scoop. Rumor: I can’t afford college. Busted: With scholarships and grants, few students pay the entire advertised sticker price of college. And with a little thought and planning, you’ll be able to save costs. Maybe you can start at a two-year school and transfer later. Maybe you pick a college near home and commute for a semester or two to save on room and board. Maybe you can forgo having a car and rely on public transportation, cabs and making friends who have cars to get to the airport and mall. College students pay for college in all kinds of ways: agreements with Mom and Dad, part-time jobs or paying co-ops and internships, working on campus or getting student loans. Apply to where you want to go, then make your final decision once your financial aid package comes through. Then sit down with your parents to determine how much student loan debt you’d have to take on with each option, and how much that means you’ll have to pay back. Be frugal in your choice—don’t take on thousands of dollars in debt if the only reason you pick a school is because your girlfriend is going there, too. Plane tickets are a lot cheaper than more student loan debt than you can handle. Rumor: Two-year schools aren’t for me.  Use a community college correctly, and you can take many of your general education requirements (think history, foreign language, science and English) at a two-year school for a fraction of a four-year school’s tuition price. After two years, you can enter the workforce with your certification or associate’s degree, or transfer to a four-year school to finish a bachelor’s. In fact, starting at a two-year school may even help you out. “We actually find that students who begin with us perform better at the upper-level school to which they transfer than most of the students who began their freshmen year at the four-year university,” says Fred Peters, director of marketing and public information at Tyler Junior College in Tyler, Texas. “Our university contacts tell us they’re seeing the same results; that’s why they welcome our transferring sophomores.” Rumor: The only way to be successful is to attend a prestigious college. Busted: Think of all the successful people in your life. Think of all the adults who have jobs that give them meaning, who contribute to their families and communities, and who make enough money to live comfortably. Now name the percentage of them went to Ivy League schools. Thought so. ‘Nuff said. Rumor: I must attend college right after high school. Busted: Taking a year off between high school and college is becoming more popular for teens who want to work, travel, volunteer or just plain experience life without school. A year off before college is called a “gap year.” Spend it wisely—you shouldn’t take time off just to sit on the couch and veg. But joining a volunteering program or getting an internship in your field can help you figure out how to make the most of college when you get there. Rumor: All admissions packets are thick, all rejection letters thin. Busted: You might get your admissions notification in an e-mail, Instant Message or (gasp!) a thin envelope. Moral of the story? Don’t throw away anything you get from colleges before you read it. “One of the things we started to do this year was sending a thin admit letter,” says John Ambrose, director of undergraduate admissions at Marygrove College in Detroit. A couple of days after getting that first notice, admitted Marygrove students receive a welcome packet full of material. “Definitely open up the envelopes that come from the institutions, whether interested in the school or not,” Ambrose says. “The colleges spend a lot of time and money trying to woo the student to participate. There may be some information in that envelope that really becomes pertinent, but you don’t know it because you didn’t open the envelope.” Imagine if you chucked an envelope without checking it—and miss out on a scholarship invitation, a free visit or a new major you would’ve loved. Rumor: I’m smart, so I can get into any school I apply to. Busted: You might not get into every college you apply to. That’s why admissions reps recommend applying to three to six schools. Apply to at least one “reach” college—one that you’ve dreamed of attending but maybe aren’t a shoo-in for. You should feel fairly confident (though nervous is OK) that you’d be a good match for the other colleges you apply to. And consider it humbling—not a failure—if you get a rejection letter or two. Rumor: Taking foreign language in high school won’t help. Busted: Take as many semesters of foreign language as you can in high school. Don’t like it? Do it anyway, and you could test out of it in college. Colleges have general education requirements, classes that all students have to take before graduation. Foreign language is often one of them. But if you can test out of language classes, it can mean more time for electives, or even, ironically, study abroad!  Busted: “Reality: It usually is very disgusting,” says Carol Miller, school counselor at Lansing High School in Lansing, New York. But actually, many colleges are putting a lot of effort into making sure their food is tasty. Harding University in Searcy, Arkansas, made a $2.25 million renovation to its cafeteria in 2003. Students at Green Mountain College in Poultney, Vermont, harvest vegetables on their campus farm for the school’s dining services. Hope College in Holland, Michigan, hired current vegetarian students to develop its options for vegans, ovo and lacto vegetarians. And at Wartburg College in Waverly, Iowa, brown-bag lunches are available for students who don’t have time to eat lunch in the dining hall. Rumor: Credit cards will make it easier to pay for college. Busted: Credit cards may seem like free money, but it’s really just a loan that you have to pay back—with interest. “You need to keep careful track of how much you are spending so you don’t join the millions in credit card debt,” Miller says. Get a work-study or other part-time job while in college to pay for dates, movies, Starbucks fixes and more. That way, you’ll know how much you have to spend on treats without going into debt for them. Rumor: You’ll be able to fit all your stuff in your dorm room. Busted: “Take your bedroom that you have at home. Cut it in half, then throw another human being in there with you. That’s what it’s going to be like next year,” says Fairport High School counselor John Serafine. When visiting colleges this fall, take a good look at your average dorm room’s closet. Smart college students put their bed posts on concrete blocks to be able to store stuff under the bed, or loft or bunk their beds to make room for other stuff. There will not be room for two TVs, two computers, two fridges, two extensive wardrobes, two microwaves, etc. So call your roommate before you start packing for school to figure out what each of you plans to bring. Then leave most of your other stuff home. You can always have Mom or Dad send it your way if you really miss it. And by the way, your roommate? We’ve gotta bust that rumor, too. Even if he kicks the bucket, you’re still stuck with the grades you’ve earned—not a 4.0. Article provided by Kaplan Test Prep & Admissions |
|||||
| If investment, financial, mortgage or insurance planning and/or products are required, College and Retirement Solutions, LLC may refer you to one of its affiliates, including The Ziering Insurance Agency. Any discussion of the Tax implications of planning is strictly for general purposes. Neither "CRS" nor its representatives may give specific tax advice. One should seek the advice and counsel of their accountant and/or tax advisor for information regarding their particular situation. |


0.22.0 (2022-12-23)
Enhancements
- On Ruby 3.2+, you can now use the new Coverage library feature for
eval
- See https://github.com/simplecov-ruby/simplecov/pull/1037. Thanks @mame!
Bugfixes
- Fix for making the test suite pass against the upcoming Ruby 3.2 - See https://github.com/simplecov-ruby/simplecov/pull/1035. Thanks @mame
0.21.2 (2021-01-09)
Bugfixes
maximum_coverage_drop
won't fail any more if.last_run.json
is still in the old format. Thanks @petertellgrenmaximum_coverage_drop
won't fail if an expectation is specified for a previous unrecorded criterion, it will just pass (there's nothing, so nothing to drop)- fixed bug in
maximum_coverage_drop
calculation that could falsely report it had dropped for minimal differences
0.21.1 (2021-01-04)
Bugfixes
minimum_coverage_by_file
works again as expected (errored out before 😱)
0.21.0 (2021-01-03)
The "Collate++" release making it more viable for big CI setups by limiting memory consumption. Also includes some nice new additions for branch coverage settings.
Enhancements
- Performance of SimpleCov.collate improved - it should both run faster and consume much less memory esp. when run with many files (memory consumption should not increase with number of files any more)
- Can now define the minimum_coverage_by_file, maximum_coverage_drop and refuse_coverage_drop by branch as well as line coverage. Thanks to @jemmaissroff
- Can set primary coverage to something other than line by setting
primary_coverage :branch
inSimpleCov
Configuration. Thanks to @jemmaissroff
Misc
- reduce gem size by splitting Changelog into
Changelog.md
and a pre 0.18Changelog.old.md
, the latter of which is not included in the gem - The interface of
ResultMeger.merge_and_store
is changed to support thecollate
performance improvements mentioned above. It's not considered an official API, hence this is not in the breaking section. For people using it to merge results from different machines, it's recommended to migrate to collate.
0.20.0 (2020-11-29)
The "JSON formatter" release. Starting now a JSON formatter is included by default in the release. This is mostly done for Code Climate reasons, you can find more details in this issue.
Shipping with so much by default is sub-optimal, we know. It's the long term plan to also provide simplecov-core
without the HTML or JSON formatters for those who don't need them/for other formatters to rely on.
Enhancements
simplecov_json_formatter
included by default (docs), this should enable the Code Climate test reporter to work again once it's updated- invalidate internal cache after switching
SimpleCov.root
, should help with some bugs
0.19.1 (2020-10-25)
Bugfixes
- No more warnings triggered by
enable_for_subprocesses
. Thanks to @mame - Avoid trying to patch Process.fork when it isn't available. Thanks to @MSP-Greg
0.19.0 (2020-08-16)
Breaking Changes
- Dropped support for Ruby 2.4, it reached EOL
Enhancements
- observe forked processes (enable with
SimpleCov
.enable_for_subprocesses). See #881, thanks to @robotdana SimpleCov
distinguishes better that it stopped processing because of a previous error vs.SimpleCov
is the originator of said error due to coverage requirements.
Bugfixes
- Changing the
SimpleCov.root
combined with the root filtering didn't work. Now they do! Thanks to @deivid-rodriguez and see #894 - in parallel test execution it could happen that the last coverage result was written to disk when it didn't complete yet, changed to only write it once it's the final result
- if you run parallel tests only the final process will report violations of the configured test coverage, not all previous processes
- changed the parallel_tests merging mechanisms to do the waiting always in the last process, should reduce race conditions
Noteworthy
- The repo has moved to https://github.com/simplecov-ruby/simplecov - everything stays the same, redirects should work but you might wanna update anyhow
- The primary development branch is now
main
, notmaster
anymore. If you get simplecov directly from github change your reference. For a whilemaster
will still be occasionally updated but that's no long term solion.
0.18.5 (2020-02-25)
Can you guess? Another bugfix release!
Bugfixes
- minitest won't crash if
SimpleCov
isn't loaded - aka don't executeSimpleCov
code in the minitest plugin ifSimpleCov
isn't loaded. Thanks to @edariedl for the report of the peculiar problem in #877.
0.18.4 (2020-02-24)
Another small bugfix release 🙈 Fixes SimpleCov running with rspec-rails, which was broken due to our fixed minitest integration.
Bugfixes
SimpleCov
will run again correctly when used with rspec-rails. The excellent bug report #873 by @odlp perfectly details what went wrong. Thanks to @adam12 for the fix #874.
0.18.3 (2020-02-23)
Small bugfix release. It's especially recommended to upgrade simplecov-html as well because of bugs in the 0.12.0 release.
Bugfixes
- Fix a regression related to file encodings as special characters were missing. Furthermore we now respect the magic
# encoding: ...
comment and read files in the right encoding. Thanks (@Tietew) - see #866 - Use
Minitest.after_run
hook to trigger post-run hooks ifMinitest
is present. See #756 and #855 thanks (@adam12)
0.18.2 (2020-02-12)
Small release just to allow you to use the new simplecov-html.
Enhancements
- Relax simplecov-html requirement so that you're able to use [0.12.0]#0120-2020-02-12)
0.18.1 (2020-01-31)
Small Bugfix release.
Bugfixes
- Just putting
# :nocov:
on top of a file or having an uneven number of them in general works again and acts as if ignoring until the end of the file. See #846 and thanks @DannyBen for the report.
0.18.0 (2020-01-28)
Huge release! Highlights are support for branch coverage (Ruby 2.5+) and dropping support for EOL'ed Ruby versions (< 2.4). Please also read the other beta patch notes.
You can run with branch coverage by putting enable_coverage :branch
into your SimpleCov
configuration (like the SimpleCov.start do .. end
block)
Enhancements
- You can now define the minimum expected coverage by criterion like
minimum_coverage line: 90, branch: 80
- Memoized some internal data structures that didn't change to reduce
SimpleCov
overhead - Both
FileList
andSourceFile
now have acoverage
method that returns a hash that points from a coverage criterion to aCoverageStatistics
object for uniform access to overall coverage statistics for both line and branch coverage
Bugfixes
- we were losing precision by rounding the covered strength early, that has been removed. For Formatters this also means that you may need to round it yourself now.
- Removed an inconsistency in how we treat skipped vs. irrelevant lines (see #565) - SimpleCov's definition of 100% is now "You covered everything that you could" so if coverage is 0/0 that's counted as a 100% no matter if the lines were irrelevant or ignored/skipped
Noteworthy
FileList
stopped inheriting from Array, it includes Enumerable so if you didn't use Array specific methods on it in formatters you should be fine- We needed to change an internal file format, which we use for merging across processes, to accommodate branch coverage. Sadly CodeClimate chose to use this file to report test coverage. Until a resolution is found the code climate test reporter won't work with
SimpleCov
for 0.18+, see this issue on the test reporter.
0.18.0.beta3 (2020-01-20)
Enhancements
- Instead of ignoring old
.resultset.json
s that are inside the merge timeout, adapt and respect them
Bugfixes
- Remove the constant warning printing if you still have a
.resultset.json
in pre 0.18 layout that is within your merge timeout
0.18.0.beta2 (2020-01-19)
Enhancements
- only turn on the requested coverage criteria (when activating branch coverage before
SimpleCov
would also instruct Ruby to take Method coverage) - Change how branch coverage is displayed, now it's
branch_type: hit_count
which should be more self explanatory. See #830 for an example and feel free to give feedback! - Allow early running exit tasks and avoid the
at_exit
hook through the SimpleCov.run_exit_tasks! method. (thanks @macumber) - Allow manual collation of result sets through the SimpleCov.collate entrypoint. See the README for more details (thanks @ticky)
- Within
case
, even if there is noelse
branch declared show missing coverage for it (aka no branch of it). See #825 - Stop symbolizing all keys when loading cache (should lead to be faster and consume less memory)
- Cache whether we can use/are using branch coverage (should be slightly faster)
Bugfixes
- Fix a crash that happened when an old version of our internal cache file
.resultset.json
was still present
0.18.0.beta1 (2020-01-05)
This is a huge release highlighted by changing our support for ruby versions to 2.4+ (so things that aren't EOL'ed) and finally adding branch coverage support!
This release is still beta because we'd love for you to test out branch coverage and get your feedback before doing a full release.
On a personal note from @PragTob thanks to ruby together for sponsoring this work on SimpleCov
making it possible to deliver this and subsequent releases.
Breaking
- Dropped support for all EOL'ed rubies meaning we only support 2.4+. Simplecov can no longer be installed on older rubies, but older simplecov releases should still work. (thanks @deivid-rodriguez)
- Dropped the
rake simplecov
task that "magically" integreated with rails. It was always undocumented, caused some issues and had some issues. Use the integration as described in the README please :)
Enhancements
- Branch coverage is here! Please try it out and test it! You can activate it with
enable_coverage :branch
. See the README for more details. This is thanks to a bunch of people most notably @som4ik, @tycooon, @stepozer, @klyonrad and your humble maintainers also contributed ;) - If the minimum coverage is set to be greater than 100, a warning will be shown. See #737 (thanks @belfazt)
- Add a configuration option to disable the printing of non-successful exit statuses. See #747 (thanks @JacobEvelyn)
- Calculating 100% coverage is now stricter, so 100% means 100%. See #680 thanks @gleseur
Bugfixes
- Add new instance of
Minitest
constant. TheMiniTest
constant (with the capital T) will be removed in the next major release ofMinitest
. See #757 (thanks @adam12)
Older Changelogs
Looking for older changelogs? Please check the [old Changelog])


SEXUAL ASSAULT CRIMES AGAINST MINORS
Section [25]. In continuous sexual assault crimes against minors younger than fourteen years of age, the legislature may define:
1. What behavior constitutes a continuing course of conduct; and
2. What constitutes the jury unanimity that is required for a conviction. [Add SB 2246 (2006) and election Nov 7, 2006]
Cross References
Continuous sexual assault of a minor under the age of fourteen years, see §707-733.6.


😇 Open up this page.
🎯 The objective of the meeting is clear.
📑 There's an agenda.
🤔 Everyone who needs to be there, is there.
🤓 Everyone has a job to do.
🤝 There's someone to check that we stay on track.
⏱🤑 Start the Money Clock
# atendees


Text to send (2) all good dogs and elephants berate foxes constantly Send Cancel Speed: Pitch: Gain (0-100):


STJÓRNA was created to have an easy product management with the possibility to
access
the categories and products over an simple just readable REST API.
STJÓRNA means in the Islandic language something like manage or store something.
If you need help, you can contact us under the following buttons.
| Hostname | {{serverInfo.hostname}} |
| Api Port | {{serverInfo.api_port}} |
| OS Type | {{serverInfo.os}} |
| OS Arch | {{serverInfo.arch}} |
| CPU | {{serverInfo.cpu}} |
| Memory Total | {{serverInfo.mem_total / 1024 / 1024 / 1024 | number }} GB |
| Memory Free | {{serverInfo.mem_free / 1024 / 1024 / 1024 | number }} GB |
| Load Avgerage | {{serverInfo.loadavg}} |
| STJÓRNA Version | {{serverInfo.app_version}} |
| Database Type | {{serverInfo.database.type}} |
| Database Constellations | {{serverInfo.database.constellations | json}} |
Copyright 2019 secanis.ch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{{'about.libraries.thanks' | translate}}


Brian ejoys writing software that makes people happy
Check out what Brian loves to write code in
Thank you for visiting Brian! github


This last week has been a bit crazy with all the new stuff that is going on but… if last week was mayhem, get ready because this week is hardware week.
Tomorrow I will go to the London Hackspace to see what do they do and IF it would make any sense to join them. I will unveil an idea that I’ve been working on for the last weeks. One of the things that I’ve learnt during these last 2 years is that no idea is good if no money can be made.
I agree that making money is “the business part” of the idea and I’ve been tempted to write a post about that in reply to a conversation that was triggered in Twitter by the fine people of Klicap. However, time is precious and “Talking is easy” so, my new motto is “Make More, Talk Less” (not that this many people are listening).
Super exciting times where I have to deal with Software and Hardware and the close relationship between them.
This pre-holidays week is all about hardware:
- Arduino
- Rapsberry Pis
- NFC
And :blibb that we could say it’s the glue that ties them together. As I said… Exciting!


Creates a grad-pass-through op with the forward behavior provided in f.
tf.compat.v1.grad_pass_through
tf.compat.v2.grad_pass_through
tf.grad_pass_through(f)
Use this function to wrap any op, maintaining its behavior in the forward pass, but replacing the original op in the backward graph with an identity. For example:
x = tf.Variable(1.0, name="x") z = tf.Variable(3.0, name="z") with tf.GradientTape() as tape: # y will evaluate to 9.0 y = tf.grad_pass_through(x.assign)(z**2) # grads will evaluate to 6.0 grads = tape.gradient(y, z)
Another example is a 'differentiable' moving average approximation, where gradients are allowed to flow into the last value fed to the moving average, but the moving average is still used for the forward pass:
x = ... # Some scalar value # A moving average object, we don't need to know how this is implemented moving_average = MovingAverage() with backprop.GradientTape() as tape: # mavg_x will evaluate to the current running average value mavg_x = tf.grad_pass_through(moving_average)(x) grads = tape.gradient(mavg_x, x) # grads will evaluate to 1.0
f
: function f(*x)
that returns a Tensor
or nested structure of Tensor
outputs.A function h(x)
which returns the same values as f(x)
and whose
gradients are the same as those of an identity function.


New school site approved
by Jon ManchesterWest Kelowna is closer to getting a new secondary school after Agricultural Land Commission approval of a site on Webber Road.
The ALC granted a request Nov. 15 by the Central Okanagan School District to build on the 14-acre former Webber Road Elementary property in the Glenrosa neighbourhood.
ALC approval was necessary, as the high school's footprint would be considerably larger.
The district will now develop a feasibility and cost analysis for the province, and if given the go-ahead to proceed with design and construction, the school could be completed within three to four years.
"A new secondary school in West Kelowna will provide welcome relief to Mount Boucherie Secondary School, which already exceeds its capacity by 10 per cent and is projected to grow by five per cent each year," the district said in a press release.
Currently, students are crammed into nine portables at MBSS.
The search for a suitable site has been the district's No. 1 capital priority.
It was a challenge because there are few large sites in West Kelowna that are not in the Agricultural Land Reserve, the district said.


|
| Alexander Archipenko art links |
| | |
Alexander Archipenko
[Ukrainian Cubist Sculptor, 1887-1964]
|
|
|
|
Alexander Archipenko Works Online
Categorized & Annotated
Commercial Galleries: Galleries: We invite you to register and list your site (no charge for this service)
Original works by Alexander Archipenko available for purchase at art galleries worldwide
Museums and Public Art Galleries Worldwide:
Art Institute of Chicago NEW!
Alexander Archipenko at the Detroit Institute of Arts, Michigan Seated Female Nude, ca.1929
Fine Arts Museums of San Francisco NEW!
Guggenheim Museum, New York City 3 works online
Hermitage Museum, Saint Petersburg, Russia 11 drawings
Metropolitan Museum of Art, New York City NEW!
Museum of Fine Arts, Boston NEW! Drawings collection online
Museum of Modern Art, New York City Includes biographical information about the artist
National Gallery of Art, Washington D.C. NEW! Most but not all artists in the NGA database have works online
Norton Simon Museum, Pasadena, California
Peggy Guggenheim Collection, Venice NEW!
Alexander Archipenko at the Smithsonian American Art Museum, Washington D.C.
Städel Museum, Frankfurt, Germany The Bather
Tate Gallery, London, UK
The Phillips Collection, Washington D.C. 2 works online
Addison Gallery of American Art, Andover, Massachusetts
Amgueddfa Cymru - National Museum Wales, Cardiff
Block Museum of Art at Northwestern University, Illinois Two Figures, from Dreizehn Steinzeichnangen
Bowdoin College Museum of Art, Maine (Zoomable) Nude Study, red and blue crayon, ca.1921
Brooklyn Museum, New York City
Chi-Mei Museum, Taiwan (in Chinese) Torso
Cleveland Museum of Art, Ohio
Harvard University Art Museums, Massachusetts Harvard have works in their collections, but unfortunately you have to type in the search yourself
Hirshhorn Museum and Sculpture Garden, Washington D.C. NEW!
Indianapolis Museum of Art, Indiana
Indianapolis Museum of Art, Indiana
Los Angeles County Museum of Art NEW!
Maier Museum of Art at Randolph-Macon Woman's College, Virginia (Note: Click the title to view the artwork details, not the thumbnail image.)
Mildred Lane Kemper Art Museum, St. Louis, Missouri
Milwaukee Art Museum, Wisconsin Struggle (La Lutte)
Nasher Sculpture Center, Dallas, Texas
National Gallery of Victoria, Australia Silhouette
Palm Springs Desert Museum, California Flat Torso, 1915
Philadelphia Museum of Art
Portland Museum of Art, Maine
Princeton University Art Museum, New Jersey
San Antonio Art League Museum, Texas Kneeling Woman
San Diego Museum of Art, California NEW!
Sheldon Museum of Art, Lincoln, Nebraska Sarcophagus of Angelica
Tel Aviv Museum of Art, Israel Woman with a Fan, 1914
Terra Foundation for American Art, Chicago NEW! Torso in Space, 1952
Von der Heydt-Museum, Wuppertal, Germany (in German)
Walker Art Center, Minnesota
Winnipeg Art Gallery, Manitoba
National Art Databases and Museum Inventories:
Smithsonian American Art Museum National Art Inventories List of works nationwide from two sources: the Inventory of American Paintings Executed before 1914 and the Inventory of American Sculpture (only a few percent of listings have an accompanying image)
Art Market: (e.g. records of past sales at auction; sites providing examples of the artist's signature)
Art Signature Dictionary NEW!
Christie's Past Sale Archive (database goes as far back as 1991; images go about as far back as 1999)
Sotheby's Sold Lot Archive (database goes as far back as 1998; images where permitted by copyright go about as far back as 2001)
Pictures from Image Archives:
Wikimedia Commons Image Database
World Visit Guide (formerly Insecula)
Bildindex der Kunst und Architektur (in German) (a welcome screen is displayed for a couple of seconds before the search results appear)
Ciudad de la Pintura (in Spanish)
El Poder de la Palabra (The Power of the Word) (in Spanish)
Mary Ann Sullivan's Digital Imaging Project Gondolier
New York Public Library Digital Gallery
State Hermitage Museum Unofficial Site
Additional Image Search Tools:
(SafeSearch set to "strict"; go to Advanced Search (Flickr/Google) or Preferences (Bing) to change)
Miscellaneous Sites:
Archipenko Foundation
Kubisme (Cubism) (in Dutch)
Ohio Outdoor Sculpture Inventory
Articles and Reference Sites:
Encyclopedia Britannica complete article on Alexander Archipenko Note: The full version of the article is available only if you follow this link. If you bookmark the article and return later, or if you navigate directly to the Britannica website, you will see a 100-word preview only. Troubleshooting
Union List of Artist Names (Getty Museum) Reference sheet with basic information about the artist and pointers to other references.
Wikipedia, the "Open Content" Encyclopedia
The New York Observer "Forgotten Archipenko Gets His Overdue Show", article by Hilton Kramer
|
|
|
|
|


Ethiopia’s leader urges calm as key referendum begins
by The Associated PressADDIS ABABA, Ethiopia (AP) — Ethiopia’s Nobel Peace Prize-winning prime minister is urging calm as millions of citizens hold a referendum on whether to create a new regional state along ethnic lines.
Prime Minister Abiy Ahmed on Wednesday says the Sidama referendum is an expression of Ethiopia’s new democratic path.
Abiy’s sweeping political reforms since he took office last year have opened the way for some of the country’s more than 80 ethnic groups to push for more autonomy.
Sometimes deadly unrest has followed, and tensions could rise ahead of national elections in May. Observers say this poses Abiy’s greatest challenge.
The Associated Press


/* * Copyright 2013 Jive Software * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @module constants */ /** * @property {String} PUSH_DATA_TO_JIVE pushDataToJive Fired on request to push tile data update to Jive. * @property {String} PUSH_ACTIVITY_TO_JIVE Fired on request to push externatstream activity to Jive. * @property {String} PUSH_COMMENT_TO_JIVE Fired on request to push a comment into Jive. * @property {String} COMMENT_ON_ACTIVITY Fired on request to push a comment on an activity entry into Jive. * @property {String} COMMENT_ON_ACTIVITY_BY_EXTERNAL_ID Fired on request to push a comment on an activity entry into Jive. * @property {String} FETCH_COMMENTS_ON_ACTIVITY Fired on request for activity comments from Jive. * @property {String} FETCH_ALL_COMMENTS_FOR_EXT_STREAM Fired on request for activity comments from Jive. * @property {String} INSTANCE_REGISTRATION Fired on request to register a new tile or externalstream instance. * @property {String} INSTANCE_UNREGISTRATION Fired on request to destroy a tile or externalstream instance. * @property {String} CLIENT_APP_REGISTRATION Fired on request to register a Jive instance on the service. * @property {String} GET_PAGINATED_RESULTS Fired on request for paginated results from a Jive service. * @property {String} GET_EXTERNAL_PROPS Fired on request for retrieving external props on a tile or externalstream instance. * @property {String} SET_EXTERNAL_PROPS Fired on request for setting external props on a tile or externalstream instance. * @property {String} DELETE_EXTERNAL_PROPS Fired on request for deleting external props on a tile or externalstream instance. */ exports.tileEventNames = { 'PUSH_DATA_TO_JIVE':'pushDataToJive', 'PUSH_ACTIVITY_TO_JIVE':'pushActivityToJive', 'PUSH_COMMENT_TO_JIVE':'pushCommentToJive', 'COMMENT_ON_ACTIVITY':'commentOnActivity', 'COMMENT_ON_ACTIVITY_BY_EXTERNAL_ID':'commentOnActivityByExternalID', 'FETCH_COMMENTS_ON_ACTIVITY':'fetchCommentsOnActivity', 'FETCH_ALL_COMMENTS_FOR_EXT_STREAM':'fetchAllCommentsForExtstream', 'INSTANCE_REGISTRATION':'registration', 'INSTANCE_UNREGISTRATION':'unregistration', 'CLIENT_APP_REGISTRATION':'clientAppRegistration', 'GET_PAGINATED_RESULTS':'getPaginatedResults', 'GET_EXTERNAL_PROPS':'getExternalProps', 'SET_EXTERNAL_PROPS':'setExternalProps', 'DELETE_EXTERNAL_PROPS':'deleteExternalProps' }; /** * @property {String} NEW_INSTANCE Fired when a new tile or externalstream instance is created. * @property {String} INSTANCE_UPDATED Fired when a tile or externalstream instance is updated. * @property {String} INSTANCE_REMOVED Fired when a tile or externalstream instance is destroyed. * @property {String} DATA_PUSHED Fired when a tile instance updated is pushed into Jive. * @property {String} ACTIVITY_PUSHED Fired when an externalstream instance is pushed into Jive. * @property {String} COMMENT_PUSHED Fired when an externalstream instance comment is pushed into Jive. * @property {String} CLIENT_APP_REGISTRATION_SUCCESS Fired when a community registers itself with the addon service successfully. * @property {String} CLIENT_APP_REGISTRATION_FAILED Fired when a community registers itself with the addon service unsuccessfully. */ exports.globalEventNames = { 'NEW_INSTANCE':'newInstance', 'INSTANCE_UPDATED':'updateInstance', 'INSTANCE_REMOVED':'destroyedInstance', 'DATA_PUSHED':'dataPushed', 'ACTIVITY_PUSHED':'activityPushed', 'COMMENT_PUSHED':'commentPushed', 'CLIENT_APP_REGISTRATION_SUCCESS' : 'registeredJiveInstanceSuccess', 'CLIENT_APP_REGISTRATION_FAILED' : 'registeredJiveInstanceFailed' }; /** * @property {String} WORKER Worker nodes typically do not handle HTTP requests, and are concerned mostly with background tasks. * @property {String} PUSHER A subspecies of WORKER node, specializing in making HTTP requests. * @property {String} HTTP_HANDLER HTTP handler nodes specialize in accepting incoming requests, and possibly forwarding them for further processing. */ exports.roles = { 'WORKER':'worker', 'PUSHER':'pusher', 'HTTP_HANDLER':'http' }; /** * This is the string normally appended to incoming v3 entities, for the purpose of thwarting security threats:
 * throw 'allowIllegalResourceCall is false.'; * @type {string} */ exports.SECURITY_STRING = "throw 'allowIllegalResourceCall is false.';\n";


The Atomium is a landmark building in Brussels, originally constructed for the 1958 Brussels World’s Fair. It is located on the Heysel Plateau, where the exhibition took place. It is now a museum.


We provide you with experience & expertise, customer care, attention to details, design, punctuality, wide-range customization, user-friendliness, and much more.

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.
“Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.”
“Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.”
“Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.”
A preview of all the features that are implemented in EDClin.
Find out how to boost your project.
EDClin is compatible with all the main desktop and mobile environments currently available - so it can equally perform under on Windows, MacOS, Linux, Android, iOS.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
EDClin is an Electronic Data Capture tool first developed by ClinSearch in 2011. It provides the perfect platform needed to collect data in the context of all categories of clinical trials. To this day, it has been successfully employed in a variety of scientific frameworks, from non-interventional studies, to phase I trials, from expanded access cohorts to medical devices post-market follow-ups.
For several reasons, really.
Because we offer a versatile solution, an application bearing a solid core that can be adaptaed to virtually any need. From data entry, to site management, customizable exports, accessible metrics, documents upload and built-in pseudonymization — each feature can be fine-tuned to best suit your needs.
Because our team of developers and data managers has forged extensive expertise over the years: with an inclusive knowledge of all the aspects lying behind every angle of a trial, we can take charge of every detail of development, customization and data validation. You tell us what you need, we'll deliver exactly what you want.
Because EDClin comes with a light and intuitive user interface, conceived to allow easy browsing and prompt understanding, with the purpose to get as far as you need with as few clicks as possible.
As long as you have an internet connection, you are good to go.
EDClin does not require any installation and can be accessed from any of the main browser currently available: Google Chrome, Mozilla Firefox, Internet Explorer, Microsoft Edge, Safari, Opera.
No.
We are aware that do-it-yourself eCRFs are trending these days, but you should beware of trends: these type of solutions, although appealing, generally lack robustness, require a large share of your time to set up, and often come with very limited capabilities.
So, no, we can't offer such feature since it falls out of our scope.
What we do offer, though, is a high-quality ready-to-use product, built and tested by experts, that is far more competitive than any drag-and-drop solution.
EDClin is a Java EE-based application implementing BIRT Reports for high quality transcription of collected data. It relies on Oracle Database 12c Relational Database Management System (RDBMS) for data storage.
The EDC System developed by ClinSearch complies with 21 CFR Part 11 requirements and fully meets the key FDA requirements in Computer System Validation (CSV).
.
A dedicated support email address will be deployed once your EDC goes live. Plus, a memeber of our team will always be available to take care of your demand, Monday to Friday, 9 AM to 9 PM.
We'd love to talk about your business!


When testing our applications there are often times we need to make requests to external services. We may even want to simulate different situations like unexpected server errors. Handling this in an efficient way doesn’t come easy in Elixir without a little help.
In this lesson we’re going to explore how bypass can help us quickly and easily handle these requests in our tests.
Table of Contents
What is Bypass?
Bypass is described as “a quick way to create a custom plug that can be put in place instead of an actual HTTP server to return prebaked responses to client requests.”
What does that mean? Under-the-hood Bypass is an OTP application that masquerades as an external server listening for and responding to requests. By responding with pre-defined responses we can test any number of possibilities like unexpected service outages and errors along with the expected scenarios we’ll encounter, all without making a single external request.
Using Bypass
To better illustrate the features of Bypass we’ll be building a simple utility application to ping a list of domains and ensure they’re online. To do this we’ll create new supervisor project and a GenServer to check the domains on a configurable interval. By leveraging Bypass in our tests we’ll be able to verify our application will work in many different outcomes.
Note: If you wish to skip ahead to the final code, head over to the Elixir School repo Clinic and have a look.
By this point we should be comfortable creating new Mix projects and adding our dependencies so we’ll focus instead of the pieces of code we’ll be testing. If you do need a quick refresher, refer to the New Projects section of our Mix lesson.
Let’s start by creating a new module that will handle making the requests to our domains.
With HTTPoison let’s create a function, ping/1
, that takes a URL and returns {:ok, body}
for HTTP 200 requests and {:error, reason}
for all others:
defmodule Clinic.HealthCheck do
def ping(urls) when is_list(urls), do: Enum.map(urls, &ping/1)
def ping(url) do
url
|> HTTPoison.get()
|> response()
end
defp response({:ok, %{status_code: 200, body: body}}), do: {:ok, body}
defp response({:ok, %{status_code: status_code}}), do: {:error, "HTTP Status #{status_code}"}
defp response({:error, %{reason: reason}}), do: {:error, reason}
end
You’ll notice we are not making a GenServer and that’s for good reason: By separating our functionality (and concerns) from the GenServer, we are able to test our code without the added hurdle of concurrency.
With our code in place we need to start on our tests.
Before we can use Bypass we’ll need to ensure it’s running.
To do that, let’s update test/test_helper.exs
look like this:
ExUnit.start()
Application.ensure_all_started(:bypass)
Now that we know Bypass will be running during our tests let’s head over to test/clinic/health_check_test.exs
and finish our setup.
To prepare Bypass for accepting requests we need to open the connect with Bypass.open/1
, which can be done in our test setup callback:
defmodule Clinic.HealthCheckTests do
use ExUnit.Case
setup do
bypass = Bypass.open()
{:ok, bypass: bypass}
end
end
For now we’ll rely on Bypass using it’s default port but if we needed to change it (which we’ll be doing in a later section), we can supply Bypass.open/1
with the :port
option and a value like Bypass.open(port: 1337)
.
Now we’re ready to put Bypass to work.
We’ll start with a successful request first:
defmodule Clinic.HealthCheckTests do
use ExUnit.Case
alias Clinic.HealthCheck
setup do
bypass = Bypass.open()
{:ok, bypass: bypass}
end
test "request with HTTP 200 response", %{bypass: bypass} do
Bypass.expect(bypass, fn conn ->
Plug.Conn.resp(conn, 200, "pong")
end)
assert {:ok, "pong"} = HealthCheck.ping("http://localhost:#{bypass.port}")
end
end
Our test is simple enough and if we run it we’ll see it passes but let’s dig in and see what each portion is doing.
The first thing we see in our test is the Bypass.expect/2
function:
Bypass.expect(bypass, fn conn ->
Plug.Conn.resp(conn, 200, "pong")
end)
Bypass.expect/2
takes our Bypass connection and a single arity function which is expected to modify a connection and return it, this is also an opportunity to make assertions on the request to verify it’s as we expect.
Let’s update our test url to include /ping
and assert both the request path and HTTP method:
test "request with HTTP 200 response", %{bypass: bypass} do
Bypass.expect(bypass, fn conn ->
assert "GET" == conn.method
assert "/ping" == conn.request_path
Plug.Conn.resp(conn, 200, "pong")
end)
assert {:ok, "pong"} = HealthCheck.ping("http://localhost:#{bypass.port}/ping")
end
The last part of our test we use HealthCheck.ping/1
and assert the response is as expected, but what’s bypass.port
all about?
Bypass is actually listening to a local port and intercepting those requests, we’re using bypass.port
to retrieve the default port since we didn’t provide one in Bypass.open/1
.
Next up is adding test cases for errors.
We can start with a test much like our first with some minor changes: returning 500 as the status code and assert the {:error, reason}
tuple is returned:
test "request with HTTP 500 response", %{bypass: bypass} do
Bypass.expect(bypass, fn conn ->
Plug.Conn.resp(conn, 500, "Server Error")
end)
assert {:error, "HTTP Status 500"} = HealthCheck.ping("http://localhost:#{bypass.port}")
end
There’s nothing special to this test case so let’s move on to the next: unexpected server outages, these are the request we’re most concerned with.
To accomplish this we won’t be using Bypass.expect/2
instead we’re going to rely on Bypass.down/1
to shut down the connection:
test "request with unexpected outage", %{bypass: bypass} do
Bypass.down(bypass)
assert {:error, :econnrefused} = HealthCheck.ping("http://localhost:#{bypass.port}")
end
If we run our new tests we’ll see everything passes as expected!
With our HealthCheck
module tested we can move on to testing it together with our GenServer based-scheduler.
Multiple external hosts
For our project we’ll keep the scheduler barebones and rely on Process.send_after/3
to power our reoccuring checks, for more on the Process
module take a look at the documentation.
Our scheduler requires three options: the collection of sites, the interval of our checks, and the module that implements ping/1
.
By passing in our module we further decouple our functionality and our GenServer, enabling us to better test each in isolation:
def init(opts) do
sites = Keyword.fetch!(opts, :sites)
interval = Keyword.fetch!(opts, :interval)
health_check = Keyword.get(opts, :health_check, HealthCheck)
Process.send_after(self(), :check, interval)
{:ok, {health_check, sites}}
end
Now we need to define the handle_info/2
function for the :check
message sent send_after/2
.
To keep things simple we’ll pass our sites to HealthCheck.ping/1
and log our results to either Logger.info
or in the case of errors Logger.error
.
We’ll setup our code in a way that will enable us to improve the reporting capabilities at a later time:
def handle_info(:check, {health_check, sites}) do
sites
|> health_check.ping()
|> Enum.each(&report/1)
{:noreply, {health_check, sites}}
end
defp report({:ok, body}), do: Logger.info(body)
defp report({:error, reason}) do
reason
|> to_string()
|> Logger.error()
end
As discussed we pass our sites to HealthCheck.ping/1
then iterate the results with Enum.each/2
applying our report/1
function against each.
With these functions in place our scheduler is done and we can focus on testing it.
We won’t focus too much on unit testing the schedulers since that won’t require Bypass, so we can skip to the final code:
defmodule Clinic.SchedulerTest do
use ExUnit.Case
import ExUnit.CaptureLog
alias Clinic.Scheduler
defmodule TestCheck do
def ping(_sites), do: [{:ok, "pong"}, {:error, "HTTP Status 404"}]
end
test "health checks are run and results logged" do
opts = [health_check: TestCheck, interval: 1, sites: ["http://example.com", "http://example.org"]]
output =
capture_log(fn ->
{:ok, _pid} = GenServer.start_link(Scheduler, opts)
:timer.sleep(10)
end)
assert output =~ "pong"
assert output =~ "HTTP Status 404"
end
end
We rely on a test implementation of our health checks with TestCheck
alongside CaptureLog.capture_log/1
to assert that the appropriate messages are logged.
Now we have working Scheduler
and HealthCheck
modules, let’s write an integration test to verify everything works together.
We’ll need Bypass for this test and we’ll have to handle multiple Bypass requests per test, let’s see how we do that.
Remember the bypass.port
from earlier? When we need to mimic multiple sites, the :port
option comes in handy.
As you’ve probably guessed, we can create multiple Bypass connections each with a different port, these would simulate independent sites.
We’ll start by reviewing our updated test/clinic_test.exs
file:
defmodule ClinicTest do
use ExUnit.Case
import ExUnit.CaptureLog
alias Clinic.Scheduler
test "sites are checked and results logged" do
bypass_one = Bypass.open(port: 1234)
bypass_two = Bypass.open(port: 1337)
Bypass.expect(bypass_one, fn conn ->
Plug.Conn.resp(conn, 500, "Server Error")
end)
Bypass.expect(bypass_two, fn conn ->
Plug.Conn.resp(conn, 200, "pong")
end)
opts = [interval: 1, sites: ["http://localhost:1234", "http://localhost:1337"]]
output =
capture_log(fn ->
{:ok, _pid} = GenServer.start_link(Scheduler, opts)
:timer.sleep(10)
end)
assert output =~ "[info] pong"
assert output =~ "[error] HTTP Status 500"
end
end
There shouldn’t be anything too surprisingly in the above test.
Instead of creating a single Bypass connection in setup
, we’re creating two within our test and specifying their ports as 1234 and 1337.
Next we see our Bypass.expect/2
calls and finally the same code we have in SchedulerTest
to start the scheduler and assert we log the appropriate messages.
That’s it! We’ve built a utility to keep us informed if there’s any issues with our domains and we’ve learned how to employe Bypass to write better tests with external services.
Caught a mistake or want to contribute to the lesson? Edit this page on GitHub!


|
|
.NET Framework |
| PREV TYPE NEXT TYPE |
FRAMES NO FRAMES |
| SUMMARY: INNER | FIELD | CONST | PROP | METHOD | OP | EVENT |
DETAIL: FIELD | CONST | PROP | METHOD | OP | EVENT |
NVelocity.Exception
Class MethodInvocationException
| Constructor Summary |
MethodInvocationException(string message, System.Exception e, string methodName) CTOR - wraps the passed in exception for
examination later
*
|
MethodInvocationException
public MethodInvocationException(string message,
System.Exception e,
string methodName)
-
CTOR - wraps the passed in exception for
examination later
*
Parameters:
-
message
-
-
e
- Throwable that we are wrapping
-
methodName
- name of method that threw the exception
MethodName
public string MethodName
-
ReferenceName
public string ReferenceName
-
WrappedThrowable
public System.Exception WrappedThrowable
-
|
|
.NET Framework |
| PREV TYPE NEXT TYPE |
FRAMES NO FRAMES |
| SUMMARY: INNER | FIELD | CONST | PROP | METHOD | OP | EVENT |
DETAIL: FIELD | CONST | PROP | METHOD | OP | EVENT |


A REVIEW OF "CENTRAL STATION" by Ryan Ellis
give me a buzz on the ol' e-lines<EMAIL_ADDRESS>With the exception of the Akira Kurosawa classic "Throne Of Blood", I had never seen a foreign language film until "Central Station". Reading subtitles while trying to watch the facial expressions, set details, and technical aspects of a movie is not always fun. Heck, it's downright annoying. Still, if the acting is good and the story is compelling, you have to be willing to let your eyes do a little walkin' around the entire screen, from top to bottom. This late '98 release is an art film from Brazil about one lonely woman's seemingly pointless struggle through life. Dora (Fernanda Montenegro in an Oscar-nominated performance) is an older woman who spends her time writing letters for people at the central station. She's become incredibly cynical and doesn't even bother to mail many of the letters she's entrusted to send to the intended. A feisty woman named Ana (Soia Lira) and her spunky son, Josue (Vincius de Oliveira), stop by to send some angry words to the boy's estranged father. Shortly thereafter, Ana returns to revise the letter and make a plea for reconciliation.  Dora continues on and the boy, with no place to go, camps out at the station. He and Dora begin a volatile relationship. For a short time, she invites the lad to move in with her until she can handle him no longer and pawns him off on a couple who "pay" for kids. She buys a TV with the money, which makes her neighbourly chum, Irene (Marilla Pera), happy, but Dora soon regrets the decision and rescues the angry kid. From here, this film has "It Happened One Night" overtones with reversed roles. Dora sets out on a bustrip with Josue to take him "home" to his father in another town. She takes him about halfway, gets off the bus, and plans to let him go the rest of the way by himself. Instead, he also gets off the bus, stranding them both with no money, and forcing her to continue on the journey. Along the little odyssey, they hitch a ride with a friendly truck driver, steal food, and learn a great deal about themselves and each other. When they finally get to his father's home, they've created a bond of friendship that transcends age and loneliness. This is a story about friendship and love. It's about discovering your father (metaphorically and literally) and finding someone to keep you safe. The pains of alcoholism are a factor, too, since Josue's dad is rumoured to be a drunk. While Dora is no saint and she tends to push away every man she meets (including the trucker), she's a lonely woman who is simply trying to survive. Montenegro is solid and heart-felt in this role and, while the Academy probably won't give her the award, she's a distinguished nominee for Best Actress. She's the main reason to see "Central Station". In supporting roles, de Oliveira and Pera are pretty good, too, and provide comic relief. In fact, this movie knows when to crack a joke and when to tug at the heart. Director Walter Salles provides good balance with those aspects of the script and he uses the camera well. "Central Station" is a poetic movie, but it wouldn't be getting much recognition if not for Fernanda Montenegro. She is the backbone of this film chronicling the day-to-day hardships of Brazilian life for the under-privileged and unloved. And those darn sub-titles aren't so bad when the performances and story are sweet and agreeable.
USELESS TRIVIA--I have no useless trivia for this film.
This film gets a 7/10.

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


clone()
method, but which do not implement the Cloneable
interface.
This usually represents a programming error.
Use the checkbox below to indicate if this inspection should only warn on public
methods.
Classes designed for inheritance may choose to override clone
() and declare it protected
without implementing Cloneable
to give subclasses the choice to implement it.


Project Proposal
Project Proposal
“If I have seen further it is by standing on the shoulders of giants.” - Bernard of Chartres
A Real Time Strategy Game on an iOS Device
General area covered by the project:
This project covers:- Mobile applications
- Graphics
- HCI
- AI
- Persistence
- W eb services
- Gaming
Description of the proposed project:
I intend to write a game for an iOS device, this game will take advantage of HCI features to make it comfortable on a mobile device. This project will utilize a web service to store state across devices, store high scores visible by other players, and allow playing against the same AI enemy.Background
Android
I have spent the last two years primarily working with Android my thoughts are: there is a huge amount of boiler plate and up to recently there was no dedicated IDE (Android Studio is currently in beta) or stable dependency manager (Maven, Gradle etc....), creating layouts is XML hell and it is difficult to control communications between threads. This has pushed me to a change of platform; the grass looks far green in iOS land.
I do not intend to use Android in this project, this is a justification for my move to a new device set.
IOS
The iOS ecosystem seems to be a lot healthier, for example: the boilerplate for basic tasks like persistence is greatly reduced and persistence seems more flexible. The IDE xcode has a far more intuitive interface builder.
Most importantly of all: iOS works off Objective-C. I have spent a lot of time in the Java world, which doesn’t transfer too well to other languages. Objective-C would be a great way to gather generic C knowledge; which I could then apply to C and C++.
Controls
I have spent a lot of time gaming on computers and mobile gaming doesn’t stand up by any means, I don’t believe mobiles lack power but I consider it more of a HCI issue. Controls are limited; the usual WASD controls aren’t present without onscreen buttons, I believe a swipe control system would allow an RTS system similar to ‘Command and Conquer’ or ‘Age of Empires’.
Graphics
I have developed a game before using a pure OpenGL approach, so I feel I have already cultivated some skills there, I also intend to take ‘Computer Graphics’ next semester to solidify my knowledge in this section.
I intend to use an iOS graphics framework the ‘Sprite Framework’; Sprite Kit is a graphics rendering and animation infrastructure for Apple phones and desktops. This framework will hopefully expatiate the process of adding features to my application, at the moment this doesn’t allow for pure OpenGL but it is being added as a later feature.
NodeJS/DART
I intend to use NodeJS or DART to create a Web Service, to either store game state or a high score between players, I have used Grails before to create Web Services and websites.
I would like to gain further knowledge in JavaScript, Node.js is a platform built on Chrome's JavaScript runtime for easily building fast scalable web services; this is a technology I would like to have knowledge of also .
DART is a new language for scalable web app engineering, it is very similar to Java and compiles to JS; the compiled source is now out preforming hand written JS.
REST
I have had to conform a lot recently to SOAP and other web services that regard no standards; this needs to end. The Grails API’ I have written have been RESTful, and I intend to have serialized RESTful endpoints for this projects web services.
NoSQL
I hope to use a NoSQL database; I have worked with SQL, Oracle and such and would like to broaden horizons. I have heard very good reports of the speed and maintainability of NoSQL, along with transactions, and table structure migration.
Artificial Intelligence
My third year project involved the implementation of a swarm intelligence example; I created an Android based Ant Colony Simulator. This first taste made me eager to creating a more involved system, I believe what I learnt with the Gatherer type of ant and Solider type will be somewhat similar to military and resource gathering units.
Testing
Testing is under rated in our degree, I use a lot of unit tests in my java code to help me avoid tight coupling and good software practices... as well as the obvious benefits of having tests when editing code. I hope to continue this habit during this project.
Achievements
This application is intended as a game. I hope to attract a user base of casual gamers.
I hope to include the features listed below
GAME
Save State locally
Save State Remote
Save Score or Vanity statistic
Random Map Generation
Justification:
Choose difficulty Harvest Resources e.g. Trees, Place Buildings on the map rocks...AI
Create Unit e.g. soldier, gatherer... Move units in swiped direction Destroy enemy buildings Gather animation Attack enemy groups or units Grouped units move around obstacles and rejoin group
Animation
Select unit by circling
Attack Animation
Movement Animation
Select group of units by circling
Programming language(s):
List the proposed language(s) to be used
- Objective C
- JavaScript
- Bash
Programming tools:
List tools (compiler, database, web server, etc.) to be used
- NoSQL – MongoDB or CouchDB
- NodeJS – Backend service writing
- DART – Backend service writing
- Typescript – Adds type and object orientation to JavaScript
- Express – A web framework for NodeJS to allow structured NodeJS projects
- ARC – Memory management in iOS
- Tiled – For creating tile maps in games
- Sprite framework – For creating graphics and animations on iOS devices
- Webserver – Apache, this will be used to expose my web services
- Debian – I will host my NodeJS/DART and NoSQL DB on a Debian server, most likely on Rackspace or Amazons AWS.
Learning Challenges:
List the main new things (technologies, languages, tools, etc.) that you will have to learn:
- Objective-C
- NodeJS/DART
- Express
- JavaScript
- Typescript
- MongoDB or CouchDB
- Tile and Graphic design
- Sprite Framework
- Path Finding Algorithms
- iPad, iPhone
- MacBook Pro, OSX Mountain Lion


SFSU CS 640 Demonstration Site ~ Group 6
[Environment:]
TravelFit
Register
Remember me
Sign in
x
Register
First Name
Last Name
Email
Password
Write a Review
Sidebar
Go!
Sidebar
� 2013 Company Name. All rights reserved


December 12, 2014
The Iron Yard Academy teaches intensive, three-month courses that mentor students into professional junior-level programmers. Our program goes far beyond tactical skills and teaches students to think like a software engineer. Students have spent the past twelve weeks studying either Ruby on Rails Engineering or Front End Engineering and today they will present their final projects, which showcase the skills they have learned.
All of our graduates are ready for their first jobs as junior developers. If you meet someone who would be a great fit for your team, please feel free to reach out to them directly. Graduates' contact info can be found here. If you have questions or want more information about how our job placement program works, get in touch with Brian, the Campus Director, at<EMAIL_ADDRESS>Refreshments will be available during the demo. We hope to see you there!
Our next classes begin January 5, 2015. We are taking applications now and have room left in both Ruby on Rails Engineering and Front End Engineering. Applications can be found on our website: theironyard.com/academy. We also offer free classes for kids and host a variety of meet-ups and free events. For more information on any of these programs, visit our website or email<EMAIL_ADDRESS>Matthew Keas
Front End Engineering Instructor
Matt is an Oklahama-born, Texas-raised southerner with brief Australian and British residences. He learnt programming in high school but quickly branched into scientific computing, compilers, web development, and computer security - settling with two security certifications from "the man". The remaining 90% of Matt's experience was filled with his involvement in two startups; one SXSW campaign; a healthy dose of freelance web development; an opportunity to author a few books; and several speaking arrangements at large conferences - notably Future of Web Apps Boston, JSFest, and JS.Everywhere(2013).
Jesse Wolgamott
Ruby on Rails Instructor
JWo was not born in Texas, but got here as fast as he could, y'all. He was born in Arizona and lived in Spain, Portugal, Egypt, Kenya, and Japan ‐ all before he was 6 ‐ and was given access to a computer (8086) soon thereafter. After Dig-Dug, being the only kid in school typing reports and handing in his school reports in Lotus 123, he started to like these computer things. He programmed Perl during Web 1.0, .NET during the bust, and now Ruby and JavaScripts. Jesse has been a consultant using open source software stack for 5 years, and is an open source developer and contributor. Jesse has taught Ruby courses since 2012, authored a book on AngularJS & Rails, and has loved Rails since 2007. Jesse has trained and spoke at conferences across the US, and has determined that Tacos rule and salads drool.
Brian Dorton
Campus Director
Brian Dorton is the Campus Director in Houston. He was born in Victoria, TX and moved to Houston soon after graduating from Texas A&M with a BS in Biomedical Science. He worked in education for 10 years with experience ranging from classroom teacher to campus administrator and everything in between. He received his Masters in Educational Management in 2010 from the University of Houston Clear Lake. He has had the unique opportunity to see learning take place in students as young as 5 all the way through retiring professionals. Being able to facilitate that learning, and seeing the same “ah ha” moments on the faces of students, regardless of age, is what ignites the fire in him to continue this endeavor. He is a father of two beautiful girls who take up all of his free time and he also firmly believes that that brisket is the only BBQ that should be considered BBQ.
Affluentsy was inspired by a previous assignment drawing data from Etsy's API, as well as from curated lists of weird products from online stores. It pulls the most expensive items (which can often be the strangest) from the online store, and provides options for the user to curate that experience. On the site, you'll be able to view information about the product, share the item on social networks, and of course visit the actual product page on Etsy. The design of the site drew inspiration from other high-end retailers (given the nature of the products), and is built to work seamlessly on devices of all sizes.
HTML, CSS3, JavaScript, jQuery, Promise-based architecture with JS Prototypes, lodash/Underscore, FontAwesome, Photoshop, Etsy API, Node.js, Heroku, Myth, templating
So far, there were 2 kinds of Karma in this world- Good and bad karma. Now, we officially have a third kind - "Bling Karma." :) I created Bling karma to share my love of bling, glitter and sparkle with the rest of the world and to offer a platform to purchase exclusive and exotic jewelry at a reasonable rate. Bling is more than what you wear; it is a part of who you are.
Are you Bold/Creative/Whimsical/Vibrant or maybe a little bit of all of these? Bling Karma has something for all facets of your personality! So feed your need to bling without feeling guilty about spending way too much. Customers can also share their reviews of the product as well as their shopping experience with the review and rating system provided by Bling Karma. Bling Karma is brought to you with the help of the following:
Ruby on Rails, Javascript, Jquery, AJAX, HTML, CSS, Gems: Authentication with Devise, Image uploading with Carrierwave and MiniMagick, Image storage with fog, Payment with STRIPE, Text messaging with TWILIO, Full text search with pg_search, pagination with Kaminari.Charting API: Highcharts. JavaScript Plugins: typeahead.js for auto-complete on search.
If you do a lot of cooking, planning menus can become tedious and time consuming even if you love to cook. I chose to create "My Menu Planner" to add some fun to the task of planning menus, while providing myself with a flexible subject to review what I have learned in this course. "My Menu Planner" is a responsive, single page application that is built using parse to store data. The user can choose from four visual themes and then browse different categories of recipes.
Adobe CS, Path.js, jQuery, Underscore.js, templating, JavaScript, Parse SDK (built on top of Backbone.js), HTML5, CSS3, Responsive Design, CSS Animations, Myth, Node.js, Myth CSS Post-Processor, Heroku deployment
Alleviating the worries of small business owners in the service industry, that arise from employees handling money while on a job. Communication, invoice creation, management, and payments, are all performed electronically.
Ruby on Rails, HTML, CSS, Bourbon, JS, jQuery, Adobe Photoshop, Scalable Vector Graphics
Geekygigs is a one page app that scrapes jobs in the tech industry utilizing various job search APIs such as Authentic Jobs and Indeed.com. It filters results based on a users keyword input and city, returning results sorted by the date posted. Be the first to know of a job opening near you, all in one place!
Vanilla JavaScript, jQuery, Underscore.js, templating, Backbone.js MVC, Routing, HTML5, CSS3, Responsive Design, CSS Animations, Myth, Node.js, Myth CSS Post-Processor, Node Proxy Services, Heroku deployment
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment
People who enjoy music are always looking to explore their musical horizons. Music Match gives a user the ability to explore new music. It accepts either a music genre or an artist and generates a playlist based on user input. The user can use an individual song from an existing playlist to refine the selection in subsequent queries. Music Match is an interactive, back-end, ruby-based project that relies upon the Echo Nest for song selection and relies on Spotify to play previews of selected songs.
Ruby, Echo Nest API, Spotify API, TDD, JSON
WebCakes is a one stop shop for all the latest in web technology and tools needed to take a web project from start to end, organized by project stage. Whether you're planning, polishing, coding, releasing, or maintaining your project - WebCakes has the tools you need to deliver a phenomenal experience!
HTML5, CSS3, Myth, Normalize, Typeplate, JavaScript, jQuery, BackboneJS, UnderscoreJS, NodeJS, Parse SDK, Heroku, and Adobe Illustrator.
Chartography is meant to make finding your next concert easy. It uses the Songkick API to provide when and where your favorite musicians are playing next. It displays all this information on a Map powered by Leaflet.js, and while your deciding about where you want to go for your next concert, you can listen to a music selection provided the Spotify Play-Button. It is an open source Ruby-on-Rails project at https://github.com/scarecrow182000/Chartography and coming soon as a live site at http://chartography.herokuapp.com/.
Foundation5 by Zurb, Leaflet.js, Songkickr, RSpotify
One Password does it all! SimplePW is a password manager that helps you keep track of your usernames and passwords for all of your favorite sites. SimplePW is here to make your life Simple! With people using so many sites these days it is hard to keep track of all the different usernames and passwords. Just remember your SimplePW password and you will not have to remember another password again.
Features include a chrome browser extension, which allows you to access your sites, add new sites, and generate new passwords, and a web app that's you to add, edit, delete, and manage all of your site logins.
Ruby on Rails, Javascript, jQuery, HTML/CSS, SASS/SCSS, Bourbon/Neat/Bitters/Refills and Bootstrap for styling, JSON, AJAX, Customized Login, Browser Screenshot API
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment
My inspiration was toprubyjobs.com. There is not a comparable resource available for front-end developers. Most job boards are either littered with spam jobs or inaccurate listings. A curated and brief list of the best front-end engineering jobs is sorely lacking in the community. My app will provide a minimalistic destination for any front-end developer seeking a job. Most importantly, it will provide employers a tool that bypasses employment noise and connects them to talent in the emerging field of front-end development.
Backbone, Stripe, Firebase, Foundation, HTML5, Sass, JS, jQuery, Git, Stripe-Fire plugin, Geolocation, authentication, Backbone Fire, underscore, lodash, templating.
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment
SortaCloud is a web application for anyone who has photos across multiple cloud services. Logging in to many different accounts just to find a particular photo can be a hassle. SortaCloud is a place you can view all your photos across all cloud services, rather than just one. Once logged in you are able to connect each cloud service. Currently, SortaCloud support Facebook, Dropbox and Flickr. The future will allow for additional services and the ability to create/share galleries.
Bourbon/Neat/Bitters for styling, Javascript, jQuery, HTML/CSS, SASS/SCSS, Ruby, Rails, Flickr API, Dropbox API, Facebook API, Devise, Postgres, OAuth, Fancybox, Sidekiq, Foreman, Dokku, Digital Ocean deployment


To hear more, including Gibbs' retelling of how Fat Cat reacted, hit the above clip.


Points to the current VBO with a specific PointerTarget.
See:
glVertexPointer
See:
glColorPointer
See:
glTexCoordPointer
See:
PointerTarget enum.
const void enableState(Target trg);
Enable a specific client state (with glEnableClientState)
like GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
with the corresponding PointerTarget.
const void enableAllStates();
Enable all client states
const void disableAllStates();
Disable all client states
const void disableState(Target trg);
Disable a specific client state (with glDisableClientState)


--- layout: page title: Prototypes tagline: sound-objects, sensors and interactions permalink: /objekte/ images: - image_path: /assets/images/machines/klangobjekte_zusammen.jpg - image_path: /assets/images/machines/klangobjekt_gebaude.jpg - image_path: /assets/images/machines/klangobjekt_mp3.jpg - image_path: /assets/images/machines/klangobjekt_evelope2.jpg - image_path: /assets/images/machines/tumor_2.jpg - image_path: /assets/images/machines/cassette_2.jpg - image_path: /assets/images/machines/pilzstation_2.jpg - image_path: /assets/images/machines/synth_2.jpg title: Op Amp Synth - image_path: /assets/images/machines/machines.jpg title: Miscelanea --- {% include p5js_libs.html %}


Using a Ruby Class
If you've ever wanted to check a credit card number to see if it's valid, either for your website or an application, you can do it in Ruby using a class method.
The Luhn algorithm is one way of doing this. In the example below we start with a number 4563 9601 2200 1999 that we want to validate. The first step is to double every other number starting from the second to last. Once that is done you'll need to add all the numbers together, also adding any two-digit numbers as though they were two separate numbers. So for example, 12 when calculating the total becomes 3, or 1 + 2. If the sum of all the numbers is divisible by 10, then you know the number is valid.
Working with the Code
Classes in Ruby are defined in CamelCase following the word class. Everything between where you declare the class and its end statement is inside or part of the class. Like objects in real life, classes primarily consist of attributes and actions or methods. An initialize method is a special kind of class method that can take arguments or parameters passed into the class when an instance is created and make them available to any other methods of that same class. Below we have an initialize method that takes a number and returns an argument error if the number is less then or greater then 16 digits.
Our second class method is what checks the number and validates if it's a real credit card. To do this in Ruby we start by creating a variable to hold the final sum, and assign it a value of 0 to start. Then we need to find a way to iterate over the digits of our number in reverse and starting with the second to last, skipping one digit in-between. We began this process in our initialize method by taking our input parameter card and splitting each digit onto an array by first converting it to a string. This was then saved as an instance variable @card_array which we also used to calculate the length when checking for our argument error.
Because we're using an instance variable, this value can now be passed throughout the class every time or instance we call it. To iterate in reverse over our number (now an array of individual digits) we can start with a value of 2 and point to its negative on the index. Arrays can hold negative indexes, so [-1] is the last element of the array and [-2] is the one we want, the second to last.
Then by adding 2 each time, we can move backward (-4, -6, etc) over the array doubling each number until we reach the beginning, where our (positive) number is greater then the length +1. Then to separate the double-digit numbers we can join all the numbers into one and then re-break them apart, splitting the double-digits in the process. After that we just need to iterate over the new array adding each separate number to our sum from the beginning. And if we calculate that our total is divisible by 10, we return true. If not, false.
To call the method we create a new instance of the class: CreditCard.new(4408041234567893), pass in our number, save it as a variable and run the method: card.check_card to validate if it's real. And that's how you can use a Ruby class to validate a credit card number.
Happy Coding!


Blagojche Nedelkovski
Full stack
Developer
Blagojche is a new Full stack Web Developer.
Education
Udemy
Dr.Angela Yu
The Complite Web Development Bootcamp
Worck experiance
Date
Worck
2013-2021
KSMK
2021
Developer
Skills
HTML★★★★★
CSS★★★★
JS★★
Bootstrap★
Hobies
Contact details


####
# run_deployment.py:
#
# Runs a deployment. Starts a GUI, a TCPServer, and the deployment application.
####
import os
import sys
import platform
import sys
import webbrowser
import fprime_gds.executables.cli
import fprime_gds.executables.utils
[docs]def get_args():
"""
Gets an argument parsers to read the command line and process the arguments. Return
the arguments in their namespace.
:param args: arguments to supply
"""
# Get custom handlers for all executables we are running
arg_handlers = [
fprime_gds.executables.cli.LogDeployParser,
fprime_gds.executables.cli.GdsParser,
fprime_gds.executables.cli.MiddleWareParser,
fprime_gds.executables.cli.BinaryDeployment,
fprime_gds.executables.cli.CommParser,
]
# Parse the arguments, and refine through all handlers
try:
args, parser = fprime_gds.executables.cli.ParserBase.parse_args(
arg_handlers, "Run F prime deployment and GDS"
)
# Special checks
if args.config.get_file_path() is None and args.gui == "wx":
raise ValueError("Must supply --config when using 'wx' GUI.")
# On ValueError print error, help and exit
except ValueError as vexc:
print("[ERROR] {}".format(str(vexc)), file=sys.stderr, end="\n\n")
parser.print_help(sys.stderr)
sys.exit(-1)
return args
[docs]def launch_process(cmd, logfile=None, name=None, env=None, launch_time=5):
"""
Launch a child subprocess. This subprocess will allow the child to run outside of the memory context of Python.
:param cmd: list of command arguments to run by handing to subprocess.
:param logfile: (optional) place to redirect output to for purposes of logging. Default: None, screen.
:param name: (optional) short name for printing messages.
:param env: (optional) environment to run in. Allows for special environment contexts.
:param launch_time: (optional) time to launch the process, before rendering an error.
:return: running process
"""
if name is None:
name = str(cmd)
print(
"[INFO] Ensuring {} is stable for at least {} seconds".format(name, launch_time)
)
try:
return fprime_gds.executables.utils.run_wrapped_application(
cmd, logfile, env, launch_time
)
except fprime_gds.executables.utils.AppWrapperException as awe:
print("[ERROR] {}.".format(str(awe)), file=sys.stderr)
try:
if logfile is not None:
with open(logfile) as file_handle:
for line in file_handle.readlines():
print(" [LOG] {}".format(line.strip()), file=sys.stderr)
except Exception:
pass
raise fprime_gds.executables.utils.AppWrapperException(
"Failed to run {}".format(name)
)
[docs]def launch_tts(tts_port, tts_addr, logs, **_):
"""
Launch the Threaded TCP Server
:param tts_port: port to attach to
:param tts_addr: address to bind to
:param logs: logs output directory
:return: process
"""
# Open log, and prepare to close it cleanly on exit
tts_log = os.path.join(logs, "ThreadedTCP.log")
# Launch the tcp server
tts_cmd = [
"python3",
"-u",
"-m",
"fprime_gds.executables.tcpserver",
"--port",
str(tts_port),
"--host",
str(tts_addr),
]
return launch_process(tts_cmd, logfile=tts_log, name="TCP Server")
[docs]def launch_wx(port, dictionary, connect_address, log_dir, config, **_):
"""
Launch the GDS gui
:param port: port to connect to
:param dictionary: dictionary to look at
:param connect_address: address to connect to
:param log_dir: directory to place logs
:param config: configuration to use
:return: process
"""
gse_args = [
"python3",
"-u",
"-m",
"fprime_gds.wxgui.tools.gds",
"--port",
str(port),
]
if os.path.isfile(dictionary):
gse_args.extend(["-x", dictionary])
elif os.path.isdir(dictionary):
gse_args.extend(["--dictionary", dictionary])
else:
print(
"[ERROR] Dictionary invalid, must be XML or PY dicts: {}".format(
dictionary
),
file=sys.stderr,
)
# For OSX, add in the wx wrapper
if platform.system() == "Darwin":
gse_args.insert(
0,
os.path.join(
os.path.dirname(__file__),
"..",
"..",
"..",
"bin",
"osx",
"wx-wrapper.bash",
),
)
gse_args.extend(
["--addr", connect_address, "-L", log_dir, "--config", config.get_file_path()]
)
return launch_process(gse_args, name="WX GUI")
[docs]def launch_html(tts_port, dictionary, connect_address, logs, **extras):
"""
Launch the flask server and a browser pointed at the HTML page.
:param tts_port: port to connect to
:param dictionary: dictionary to look at
:param connect_address: address to connect to
:param logs: directory to place logs
:return: process
"""
gse_env = os.environ.copy()
gse_env.update(
{
"DICTIONARY": str(dictionary),
"FLASK_APP": "fprime_gds.flask.app",
"TTS_PORT": str(tts_port),
"TTS_ADDR": connect_address,
"LOG_DIR": logs,
"SERVE_LOGS": "YES",
}
)
gse_args = ["python3", "-u", "-m", "flask", "run"]
ret = launch_process(gse_args, name="HTML GUI", env=gse_env, launch_time=2)
if extras["gui"] == "html":
webbrowser.open("http://localhost:5000/", new=0, autoraise=True)
return ret
[docs]def launch_app(app, port, address, logs, **_):
"""
Launch the app
:param app: application to launch
:param port: port to connect to
:param address: address to connect to
:param log_dir: log directory to place files into
:return: process
"""
app_name = os.path.basename(app)
logfile = os.path.join(logs, "{}.log".format(app_name))
app_cmd = [os.path.abspath(app), "-p", str(port), "-a", address]
return launch_process(
app_cmd, name="{} Application".format(app_name), logfile=logfile, launch_time=1
)
[docs]def launch_comm(comm_adapter, tts_port, connect_address, logs, **all_args):
"""
:return:
"""
app_cmd = [
"python3",
"-u",
"-m",
"fprime_gds.executables.comm",
"--tts-addr",
connect_address,
"--tts-port",
str(tts_port),
"-l",
logs,
"--log-directly",
"--comm-adapter",
all_args["adapter"],
]
# Manufacture arguments for the selected adapter
for arg in comm_adapter.get_arguments().keys():
definition = comm_adapter.get_arguments()[arg]
destination = definition["dest"]
app_cmd.append(arg[0])
app_cmd.append(str(all_args[destination]))
return launch_process(
app_cmd,
name="{} Application".format("comm[{}]".format(all_args["adapter"])),
launch_time=1,
)
[docs]def main():
"""
Main function used to launch processes.
"""
args = vars(get_args())
# Launch a gui, if specified
args["connect_address"] = (
args["tts_addr"] if args["tts_addr"] != "<IP_ADDRESS>" else "<IP_ADDRESS>"
)
# List of things to launch, in order.
launchers = [launch_tts, launch_comm]
# Add app, if possible
if args.get("app", None) is not None and args.get("adapter", "") == "ip":
launchers.append(launch_app)
elif args.get("app", None) is not None:
print("[WARNING] App cannot be auto-launched without IP adapter")
# Launch the desired GUI package
gui = args.get("gui", "none")
if gui == "wx":
launchers.append(launch_wx)
elif gui == "html" or gui == "none":
launchers.append(launch_html)
# elif gui == "none":
# print("[WARNING] No GUI specified, running headless", file=sys.stderr)
else:
raise Exception("Invalid GUI specified: {}".format(args["gui"]))
# Launch launchers and wait for the last app to finish
try:
procs = []
for launcher in launchers:
procs.append(launcher(**args))
print("[INFO] F prime is now running. CTRL-C to shutdown all components.")
procs[-1].wait()
except KeyboardInterrupt:
print("[INFO] CTRL-C received. Exiting.")
except Exception as exc:
print(
"[INFO] Shutting down F prime due to error. {}".format(str(exc)),
file=sys.stderr,
)
return 1
# Processes are killed atexit
return 0
if __name__ == "__main__":
sys.exit(main())