text:
Silly programmer, you're not an "coder"! You don't know what's cool and what's not. Look at that UID. You must be like, 35! Yuck, old people!
Oops... meant "a coder". I was going to put "an app developer" but changed my mind at the last minute...and forgot to fix the "an".
Don't worry about it, QA will catch it before it goes to production. That's the new world of development. Write your code as horribly as you want, someone will fix it later.
Look at that UID. You must be like, 35! Yuck, old people!
Careful there, kid.
Eeeeeeeeeewwwwwwwwwwww dirty old man!
Nice graph. You'll have better luck with 'javascript' than 'java script' though.
How about picking the best tool for the job, rather than holding a popularity contest? Too old-fashioned?
It's good to avoid going too far off into the weeds, lest you find it impossible to hire someone to support code in some pet language, but that's not the concern here. Of the universe of languages, both mainstream and niche languages commonly used in your niche, pick the one that makes it easiest to develop and support the features in front of you.
It's pretty obvious someone is playing "what language will look best on my resume" here, and if playing that game is obvious to me from this distance, it will be glaring to hiring managers. Few people are looking for a history of "trendy" (you'd be amazed how fast "trendy" becomes "sad" in tech), while a history of doing the dirty, unpopular, work that keeps development teams productive is always welcome, long after the tech stack fades into obsolescence.
How about picking the best tool for the job, rather than holding a popularity contest? Too old-fashioned?
It's good to avoid going too far off into the weeds, lest you find it impossible to hire someone to support code in some pet language, but that's not the concern here. Of the universe of languages, both mainstream and niche languages commonly used in your niche, pick the one that makes it easiest to develop and support the features in front of you.
It's pretty obvious someone is playing "what language will look best on my resume" here, and if playing that game is obvious to me from this distance, it will be glaring to hiring managers. Few people are looking for a history of "trendy" (you'd be amazed how fast "trendy" becomes "sad" in tech), while a history of doing the dirty, unpopular, work that keeps development teams productive is always welcome, long after the tech stack fades into obsolescence.
All these pseudo-languages look bad to me when I review resume's. If you want to impress, learn C, C++, Assembler, or a few other real languages. Ruby, C$, VB, Python etc... those can be picked up on the fly if needed.
Learn C. Almost everything else draws from it. Learn C, and you're half-way to learning anything else.
The problem with it is that if you learn C as first language, you probably will always write C in any language. With all the ugly hacks and trying to reinvent the wheel time and time again.
I write in C for a living, but frankly, while I love my job, I don't like the language. It is just a bit more high level than a macro assembler and full of crazy behaviour.
Quite true. Should see some of my early perl code - it worked, but there were a lot of basic perl common-sense methods I didn't know.
I only program things as a hobby though, I'm not a professional. Most complicated thing I've written in perl is an IRC bot for a roleplay channel that handles character descriptions, logging and dice rolling.
C worries me these days, unless balanced with something modern, because the coding style that comes with good, maintainable C is entirely the wrong style in any modern language. C proves you understand pointers, and that's great don't get me wrong, but these days you had better be comfortable with exceptions too, because I'm beyond tired of seeing Pokemon code (gotta catch em all!).
Depends on the job.
If you're going in for a web development shop, C, C++, LISP, and ASM are just potential signs that we're wasting the applicants time, or they're wasting ours.
I mean, granted if you're looking for someone who can help handle billions upon billions of transactions per second, having someone who knows their way around with a real language is handy.
> How about picking the best tool for the job, rather than holding a popularity contest? Too old-fashioned?
How do you judge best tool for the job? That isn't an objective question. How would I know if Ruby is the right tool for me?
The more useful question is "what does the tool offer" and Ruby doesn't have much going for it. If you are using a tool that uses Ruby (like Gherkin), you have a compelling reason to use Ruby. The cost tradeoffs, for integrating one of the many equivalent languages, usually res
Interesting that even though PHP's interest has declined over time (according to the same chart [google.com]), it's still more popular than Python & Ruby combined.
Very true, but I suspect the reason behind this phenomenon is that people who use Wordpress are looking for something they don't _have_ to program.
Nice try (intentionally spelling "java script" is not cute, dude!).
Here, I fixed it to you [google.com].
Not a surprise, anyway.
Wow. Still, I would not have guessed javascript would be in (apparent) decline. Sorry already blew my mod points here.
As a big fan of Ruby generally, I hate to take this side, but Ruby is definitely no longer for the 'cool' kids and the community has been shrinking a bit for a while now.
Your Google query chart is a bit wonky as it captures all sorts of oddities. Here [google.com] is a revised chart which only looks at Computer + Electronics related searches using Google's categories for everything except Python, which I can't seem to figure out how to get it to appear.
I don't think necessarily that's the right metric for figuring out whether or not a language is dead.
It's very much a fuzzy, qualitative problem.
My best metric is, "Can you still get a job using this language? and is the work interesting?"
Those of us in industry are very fed up with Ruby and Ruby on Rails, but I think it's much more because of their communities than it is because of the technologies themselves.
I don't know if there's a polite way of saying this, but far too many of the people involved with those communities are utter disasters who in turn create utterly disastrous software systems. For every Ruby success story we may hear about, there are probably 10 or 20 total disasters that aren't as widely known. The disasters are usually because of the people involved, not the technologies.
Those of us who've been in the industry for many years, if not decades, and have had to engage in hiring over the past 8 or so years will know what I'm talking about. We have to deal with candidates who have no formal education at all in computer science, software engineering, or a related field. They don't even have the equivalent of a single four-month community college programming course. If we're lucky, they've read a single book about web development using Ruby on Rails. (This is ignoring their other serious flaws, such as the complete inability to dress or act with even a minimal level of professionalism; I've interviewed some of these hipsters while they're wearing t-shirts with dumbass sayings on them, and fedora hats.)
Now, having been in the industry for years, I can see right through these people. When they get past HR, they don't get past me. But I can't be everywhere. I've worked with a few organizations lately where the people making the hiring or purchasing decisions in the past didn't know better, and now these organizations have ended up with their very own Ruby on Rails disasters.
The Ruby community may not realize it, but they're getting a very bad reputation in the industry. It's nearly as bad as the reputation that the PHP and JavaScript communities have now. But this is exactly what's expected to happen when dealing with programmers who do shitty work in the first place, or who think it's perfectly normal to write unmaintainable code, or who think it's acceptable to job hop 3 or 4 times a year, or who can't work in a professional manner, or who deliver one under-performing and costly software disaster after another.
At more and more places, "Ruby" and "Ruby on Rails" are becoming synonyms for "costly disaster". That's not the kind of reputation that a programming language or a web framework can have if it wants to survive and flourish past the short term. Maybe the people in these communities don't realize it, but they're losing trust at an alarming pace.
TIOBE is not a particularly good metric, IMO. PyPL [google.com] (which counts search results for "X tutorial") is a better indicator of which language is popular to learn today (which, quite obviously, translates to its popularity in short term).
Ruby is standing stronger than ever [google.com].
By this metric Java [google.com] is still kicking everyone's butts. Also... *all* programming languages are "dying".
I've been around the block enough times to know that if you want to survive as a programmer you had better damn well learn to program. And not in just one language, you need to know a survey of language types. Ruby is just one type in the same category as Python and Javascript. If you really want to survive 20 years as a programmer (like I did) you need to branch out more.
Now, you kids get off my lawn.
are you sure those people aren't searching for jewels or JFK assassin killers?
Well hell if THAT is the only metric that matters I need to brush up on my VB as its doing great [google.com], right up there with Python as a matter of fact.
That said maybe I'm weird but I never understood the "Is X dying" and "Is Y gaining in popularity" I mean who gives a shit? Does it do what you need it to? Can you get your project completed using it? then STFU and use the dang thing, quit acting like a Valley girl chasing trends already! I mean you don't see the engineers going "ZOMFG my VHDL is as out of fashio
I would wager the amount of google queries only shows how many "questions" you have.
Which leas to the question if Ruby is indeed such an easy language everyone claims
Long answer: a better indicator is how many Google queries for the respective languages are issued. And those suggest that Ruby is standing stronger than ever [google.com]. Ruby is more than just Rails. And just because there is yet another web apps framework, it doesn't mean that the other ones automatically lose traction.
The Google trends supplied in your link used generic search terms, seriously skewing the results inaccurately about programming languages. Stuff about reptiles, famous comedy acts and things such as an infamous Italian scandal (and whatever else) were being included. By replacing the display with terms specific to programming, this version showing trends for searches about programming languages in Ruby, JavaScript, PHP, Java and Nodejs [google.com] should show something a little more meaningful.
Since the summary is mo
It is now official. Netcraft has confirmed: Ruby is dying.
One more crippling bombshell hit the already beleaguered Ruby community when IDC confirmed that Ruby market share has dropped yet again, now down to less than a fraction of 1 percent of all languages. Coming on the heels of a recent Netcraft survey which plainly states that Ruby has lost more market share, this news serves to reinforce what we've known all along. Ruby is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent programmers survey.
You don't need to be the Amazing Kreskin to predict Ruby's future. The hand writing is on the wall: Ruby faces a bleak future. In fact there won't be any future at all for Ruby because Ruby is dying. Things are looking very bad for Ruby. As many of us are already aware, Ruby continues to lose market share. Red ink flows like a river of blood.
Now people can spend much more time actually writing applications than writing supporting infrastructure.
I think that's as bad of an oversimplification as the original thesis. But it certainly raises an important issue the submitter seems to be ignoring. For a highly modularized system, a lack of contributions to particular modules may well simply indicate that those modules are mature and don't need a lot of additional contributions any more. To really get a feel for the health of the overall ecosystem, you have to take a broader view.
Node.js invents threading/processes and is webscale [youtube.com].
The best part is once you start coding it you will find yourself with a neat trimmed beard in designer plaid in a hip coffee shop listening to music not even out yet with 2 georgous ladies by your side giggling and being turned on by your most awesome code that is on your laptop screen.
with 2 georgous ladies
Does that mean two "ladies" both named "george" who are presumed to be into cross dressing? No, thanks.
But it's web scale.
The event/callback/state machine model is a pain to program in, but at least you don't have race conditions on shared data. Also, now that most Javascript programmers are aware that the language supports closures, callbacks aren't so hard to code properly.
The classic problem with threads is that the usual locking primitives (which are almost always variants on the POSIX primitives) are treated as an OS object, rather than part of the language. For most languages, the language has no idea of which locks lock what data. Ada gets this right, but the Ada rendezvous is clunky. Even Go gets this wrong. (See the endless discussions of "is this a race condition?" in the Go newsgroup.) So race conditions are common in threaded software, and a cause of random failures.
Practical problems with threads include crappy implementations of lock primitives that make a system call even in the non-blocking case, the cost of fencing on superscalar CPUs, and poor scheduler coordination between context switching and message passing.
Most of those issues are way too theoretical for the average web programmer. It's better that they not have to think about them. There's a lot of web code to be written and we don't want to waste the good people on it.
Ruby as a language is progressing well and Ruby 2.1 will be out soon.
Ruby gems is still active.
Just because it's not getting all the buzz from the young kids doesn't mean it's dying.
Just because it's not getting all the buzz from the young kids doesn't mean it's dying.
Ruby is not C. Ruby was born amidst a slew of toy languages, getting all the buzz from the young kids. Once that buzz died down, and the kids moved on to newer fad languages, and without a generation of seasoned programmers extolling its virtues, Ruby died.
Ruby isn't dying. It's already dead.
Perl is still used in sysadmin, however Ruby is gaining ground at Perl's expense in this area.
Python is being used in science by the new post docs, but fortran, matlab, and IDL still reign supreme. (I like python because it's way cheaper than IDL or Matlab). Perl actually has a larger share of science use than Python. Python is replacing Perl as a glue language for science with Fortran and C still do the heavy lifting.
Ruby is also being used in science. Ruby + R when plotting is required, otherwise Ruby (
that's funny, you think your little part of the world is the whole?
Ruby is quite popular in asia, used in huge projects.
We had to swallow a dagger and use JavaScript on the client as it is the only game in town. Please someone, enlighten me, why would I use this horrific language on the server side? What exactly am I missing? What is so great about Node.js that warrants having to deal with JS.
lol, like you don't do that for C#? The language does not make the programmer.
Well, for one, you can have the same single-threading benefits you have in the browser, now on the server! Cooperative multitasking like in the old days! It will make you forget what threads were invented for in the first place!
1. Naturally asynchronous, NodeJS allows vastly more I/O than a similar threaded solution. Need to implement long polling for 2,000 concurrent users? Not a problem.
2. The ability to share libraries and other code effortlessly between server-side and client-side applications.
Some of the down sides to NodeJS are that, well... it uses JavaScript. Seriously, though, it could be worse: it could be PHP. JavaScript really isn't that bad, once you actually learn the language. I hated it until fairly recently because I didn't really understand it. Now that I've spent some time learning its intricacies and quirks, I am much more productive with it. I can even enjoy using it. Would I prefer using Python? Absolutely. But it's really not so bad.
Moving forward though, I think one of the biggest problem with JavaScript in general is that we have far too many people who know just enough JavaScript to be dangerous that trying to establish high community standards will be very, very hard. In fact, one of the reasons I like Python so much is not that Python itself is all that great (it, too, has issues), but rather that there are countless excellent, well maintained, well designed libraries available. The same is simply not true for JavaScript in general.
Naturally asynchronous, NodeJS allows vastly more I/O than a similar threaded solution. Need to implement long polling for 2,000 concurrent users? Not a problem
And it's not a problem in any other decent server side language either. Async/Completion Ports for
The ability to share libraries and other code effortlessly between server-side and client-side applications
I'm struggling to understand why you'd ever want this (assuming a web application, which is a fair assumption
And it's not a problem in any other decent server side language either. Async/Completion Ports for
But it is in Ruby, to my knowledge. And many other higher-level languages.
I'm struggling to understand why you'd ever want this (assuming a web application, which is a fair assumption as you're talking about JS). Your business logic lives on the server, your presentation logic on the client - and never the twain shall meet. The only thing I can really think about is data type definitions, but JSON does a good job of simplifying that (and something like GSON will deal with the conversions). Now I have wanted to share code between server and client in a rich client application, but in that case I could build both sides in either
Yeah I'm mostly thinking pseudo classes and things like that. Say, a custom date/time library, etc.
We had to swallow a dagger and use JavaScript on the client as it is the only game in town. Please someone, enlighten me, why would I use this horrific language on the server side? What exactly am I missing? What is so great about Node.js that warrants having to deal with JS.
Because web developers think they invented threading [youtube.com]. They like node.js because they can do block/non block I/O and asynchronize programing and can write something hip called events to manage them with a new technology called a scheduler.
Damit Jim, I'm a doctor, not a developer in a dynamic, reflective, object-oriented, general-purpose programming language that supports multiple programming paradigms, including functional, object oriented, and imperative.
Thank you, Wikipedia.
Trends always die.
All-purpose languages that adapt over time are better tools to learn.
You learn more in depth, instead of having certain tasks be very easy.
This is similar to the trade off between wizard-based interfaces and actually knowing what you're doing with an operating system.
It amazes me the utility and run I've gotten out of learning C and C++.. decades go.
Clearly I am not in "the web world" and I am seeing this question from an external viewpoint. But I never really saw anybody exciting about ruby or using ruby or praising ruby except one single phd student who was using it to make his experiments repeatable and automatically logged. Sure there is an occasional article on a new version of ruby, a flaw in ruby-on-rails. I heard people talk a lot about PHP, about Python, about javascript, to do pretty much anything. But quite frankly I never hear about ruby. A
It must be your scope of work that you haven't heard of it as a option for a given project, or that no one uses it.
I'm often put in the architect position, or at least, the seat right next to them, and Ruby has frequently been brought up as a contender. It's not being brought up because it's especially good, but rather, it's evangelists, while small in number, tend to be loud in voice. It's what I call a 'toy language', in that it's fun to play with, and the kids especially seem to like it, but very few p
Has Ruby really been alive?
Matter cannot be created or destroyed, nor can it be returned without a receipt.


text:
Dave Anderson is resigning as head of the bureau of Indian affairs after just one year on the job.
Anderson says he can do more to help Indian country by working in the private sector.
Anderson had removed himself from decisions on tribal recognition and Indian gambling to avoid the appearance of any conflict of interest.
Anderson started the Famous Dave's barbecue chain in Hayward.
He is the founder of Grand Casinos Incorporated.

subset: commoncrawl


text:
Though absolute monarchies hold sway over very few peoples today, many still live under totalitarian rule. When the Christian gospel invades such an environment, an authority struggle automatically arises. For the Thessalonians, Theophilus and his fellow seekers, the call to bow to King Jesus in repentance directly challenged Caesar's absolute rule. Luke's account helps us all learn how to count the cost of citizenship in the kingdom of God.
Proceeding south and west along the Via Egnatia, Paul and Silas travel thirty miles to Amphipolis, the capital of the first district of Macedonia; a further twenty-seven miles to Apollonia; and finally thirty-five miles to Thessalonica, the capital of both the second district and the whole province. Though he may want to distance himself from Philippi in Macedonia's first district, Paul is also making a strategic choice by targeting Thessalonica. This city was uniquely situated to serve as a center for the spread of the gospel to the whole Balkan peninsula (see Rom 15:19; 1 Thess 1:7-8). A seaport on the Thermaic Gulf, Thessalonica linked sea and land routes to the rich agricultural plain of the interior of Macedonia. So today, missions strategists rightly target world-class cities and key cultural groups so that the gospel, once taking root there, may naturally spread to whole peoples and whole nations.
Instead of recounting a speech, Luke describes Paul's pattern of verbal witness through a series of clauses (Acts 17:3). They form a rhetorical syllogism, a pattern of persuasion familiar to any first-century schoolboy (Kurz 1980). By deductive logic, Paul propounds major and minor premises, using irrefutable proofs (tekmerioi: evidence from authoritative texts and witnesses; compare Acts 1:3). Taken together, these premises lead by necessary logic to the conclusion, the speaker's goal in persuasion. The witness pattern is
Major Premise: The characteristics of the Christ (Messiah) are that he must suffer and rise from the dead (17:3a).
Minor Premise: Jesus modeled these characteristics in his death and resurrection (Kurz [1980:179] believes this premise is referred to in the clause I am proclaiming to you, 17:3b).
Conclusion: This Jesus . . . is the Christ (17:3b).
What stands out here is the role of the Old Testament and the interconnected nature of argumentation and proclamation in the process of persuasion. It was a matter of explaining (dianoigo; Lk 24:32, 45-46) and proving [from the Scriptures] the major premise (the Greek word order permits us to take this phrase with these verbs instead of with reasoned, as the NIV). Proving (paratithemi) was "demonstrating by setting evidence side by side"--God's authoritative Word (such as Ps 2; 16; 110; Is 53) next to the premise that it was the divine plan that the Christ must suffer and rise from the dead (compare Lk 9:22, 44; 17:25; 18:31-33; 24:26, 46; Acts 2:31; 3:18; 13:27-29). Paul's argumentation aimed to overcome Jewish preconceptions about the Messiah as a victorious king with an eternal reign who neither suffers nor rises from the dead.
The proof for the minor premise comes in the form of proclamation (katangello, the solemn declaration of a completed happening; 16:21; 17:13, 23; Schniewind 1964:71). With boldness Paul bears witness to the historical events of Jesus' life, death and resurrection.
Witness must always be pursued in this way. There is a time for dialogue, a time to deal carefully with the questions and doubts of those who hear our witness. But there must also be proclamation. The gospel is, after all, good news from God about what he has done in Christ, not the distillation of the best of human religious reflection.
A few Jews, possibly Jason (17:7) and Aristarchus (20:4) among them, a large number of God-fearing Greeks (there is not a redundancy here separating the men into two groups, pagans and God-fearers; contrast Stott 1990:272; compare Acts 13:43) and not a few prominent women (compare 13:50; 17:12) were persuaded. By the power of the Spirit Paul's reasoning has helped them understand the situation for themselves. As a result, they are able to make a free decision, in this case to embrace Jesus as their suffering and risen Messiah (Kemmler 1975:133; compare 26:28). And they immediately changed identities and joined (literally, "their lot was cast with," implying divine saving choice; compare 13:48) Paul and Silas as brothers and sisters in the kingdom of King Jesus the Christ.
The Jews who did not believe, in their misdirected zeal for the glory of God and the law (compare Rom 10:2), take measures to thwart the gospel's advance. They "set the city in an uproar" (ethoryboun; compare cognate thorybos, Acts 20:1; 21:34; 24:18; Josephus Jewish Antiquities 18.65; it is more extensive than NIV's started a riot). They gather the rabble lounging in the marketplace and form them into a mob (compare Plutarch Parallel Lives: Aemilius Paulus 38.4, who represents the agoraioi as agitators).
The mob moves to Jason's house, looking for Paul and Silas with the intention of bringing them to trial before the free city's citizens' assembly. Not finding the traveling preachers, they drag some of their own citizens, Jason and some of the brothers, before the local city officials (politarchai, a term found only in inscriptions; Thessalonica had five or six). Possibly they feel it more appropriate to arraign their own citizens there. Maybe they suppose that the citizens' assembly would be more lenient with their own than the officials charged with public order. The charges are threefold: public disturbance--causing trouble all over the world; harboring disturbers of the peace; and defying Caesar's decrees, saying that there is another king, one called Jesus.
The forties had been a turbulent decade for Rome in dealing with the Jews. In A.D. 41 Emperor Claudius wrote a threatening letter to the Alexandrians, saying he would take measures against Jews who were "stirring up a universal plague throughout the world" (Sherwin-White 1963:51). In A.D. 44 there were public disturbances in Palestine in the wake of Herod Agrippa I's death. In A.D. 49 Claudius expelled Jews from Rome because of public disturbances in the Jewish community at the instigation of "Chrestus" (Suetonius Claudius 25.4; see comment at Acts 18:3). Though the Jews themselves had caused the uproar at Thessalonica, their trumped-up charges of public disturbance made sense within the Empire's current political climate.
The charge of defying Caesar's decrees is best understood against this background. "Augustus and Tiberius had been very sensitive about the activities of astrologers and other prognosticators and had issued decrees forbidding predictions and inquiries affecting the affairs of state or the emperor's personal well being" (Bruce 1988:325; Dio Cassius Roman History 56.25.5-6; 57.15.8; Tacitus Annals 6.20; 12.52; compare 14.9). Paul's eschatology could be easily twisted into declarations about a coming monarch who will displace Caesar (1 Thess 1:9-10; 2 Thess 2:5-8). Since Thessalonica would want to maintain its status as a free city through loyalty to the emperor, and since the local officials are charged with preserving order and making sure the imperial decrees are respected, the charges understandably throw the crowd and the city officials into turmoil (tarasso, 17:13; compare 12:18; 19:23).
From Acts 17:10 we can surmise the officials took bond from Jason and the others to ensure two things: there would be no more public disturbances, and Paul and Silas and their preaching would be gone from the city (Longenecker 1981:470). If either condition is not met, the bond will be forfeited (contrast Lake and Cadbury [1979:206], who see the bond involving Jason's denial of involvement with Paul and Silas; the forfeiture would occur if that were found not to be true). The practical result is Paul and Silas's forced departure from Thessalonica.
Although the persecutors had been the real disturbers of public order, the gospel always has an unsettling, even revolutionary effect on those who hear it. It calls for a repentance that means bowing to King Jesus in total allegiance. Totalitarian rulers, whether Caesar or modern-day overlords, cannot peacefully coexist with King Jesus or his kingdom subjects.
Next commentary:
Witness at Berea
About this commentary:
IVP New Testament Commentaries are made available by the generosity of InterVarsity Press.
Starting your free trial of Bible Gateway Plus is easy. You're already logged in with your Bible Gateway account. The next step is to enter your payment information. Your credit card won't be charged until the trial period is over. You can cancel anytime during the trial period.
Click the button below to continue.
You've already claimed your free trial of Bible Gateway Plus. To subscribe at our regular subscription rate of $3.99/month, click the button below.
It looks like you're already subscribed to Bible Gateway Plus! To manage your subscription, visit your Bible Gateway account settings.
Now that you've created a Bible Gateway account, upgrade to Bible Gateway Plus: the ultimate online Bible reading & study experience! Bible Gateway Plus equips you to answer the toughest questions about faith, God, and the Bible with access to a vast digital Bible study library. And it's all integrated seamlessly into your Bible Gateway experience. Try it free for 30 days!
Three easy steps to start your free trial subscription to Bible Gateway Plus.


text:
Brian Anthony Hernandez: "Syfy is striving to keep pace with viewers' ever-changing TV viewing habits, concocting interactive digital and social tactics. An exec details the strategies on Mashable" ...
Via The Digital Rocking Chair
Get Started for FREE
Sign up with Facebook Sign up with Twitter
I don't have a Facebook or a Twitter account
Your new post is loading...
Your new post is loading...
Luca Brigada's curator insight, March 18, 2013 6:56 PM
"Ideally before any show begins production we'll sit down with our TV development team, the show's creators and our marketing and digital teams to kick around social ideas and discuss what we think makes the most sense for that particular show. We focus on ideas that complement the show's content, that will have a wide reach and that are technically feasible to achieve.
Our major emphasis is that any social TV content has to feel organic to the audience and authentic to the show, not like it's a force fit, because that's not fun for anyone. We'll discuss dozens of ideas and then hone in on the one that makes the most sense. Sometimes that's a variation on something we've done before, but most often it's something that no one has tried before. Those are the most gratifying."
Wesley Cox's curator insight, November 11, 2014 1:16 PM
They have been making shows that tend to be relateable. It must get them more viewers to make more interesting, real shows


text:
Mark Cavendish gained a much awaited stage victory following a sensational day in the Tour de France as crosswinds changed the face of the General Classification.
The real headline makers were Alberto Contador and Team Saxo-Tinkoff who took advantage of the crosswinds to take the race to Team Sky and Chris Froome.
With the race breaking up and Team Saxo-Tinkoff taking their chances the race saw a split in the peloton, which led to Alberto Contador being in the position to pull 1:09 back on race leader Chris Froome.
The stage also saw Alejandro Valverde fall completely out of the top 10, finishing 9:54 behind the stage winner Mark Cavendish.
Mark Cavendish and two of his team-mates managed to make it into the lead group, along with fellow sprinter Peter Sagan, but it was the sprinter from the Isle of Man who managed to take the plaudits against a fighting Sagan of Team Cannondale.
Cavendish also took the most combative rider award at the end of Stage 13, a stage that saw the peloton travel from Tours to Saint-Almond-Montrond.
Team Sky again lost their edge and many of Froome's riders fell away as they frantically tried to close down the gap between the yellow jersey group and the group of Contador.
The move opens up the Tour de France with Contador and Bauke Mollema moving in closer to the Kenyan born rider.
Both Mollema and Roman Kreuziger also managed to get into the group with Alberto Contador, and find themselves within three minutes of taking the race lead.
The surprise package of this year's Tour, Mollema of Belkin Pro Cycling moved the closest at 2:28 back behind Froome. Contador is third at 2:45 behind and Kreuziger at 2:48 respectively.
Spaniard Valerde, who started the day in second, fell to 16th in the GC with any hope of wearing the Maillot Jaune falling away.
Write for GiveMeSport! Sign-up to the GMS Writing Academy here: https://bit.ly/12evFlH
DISCLAIMER: This article has been written by a member of the GiveMeSport Writing Academy and does not represent the views of GiveMeSport.com or SportsNewMedia. The views and opinions expressed are solely that of the author credited at the top of this article. GiveMeSport.com and SportsNewMedia do not take any responsibility for the content of its contributors.
Do YOU want to write for GiveMeSport? Get started today by signing-up and submitting an article HERE: https://www.givemesport.com/writeforgms


text:
Ethiopia, back at the Africa Cup of Nations after a three-decade absence, overcame a red card to hold champions Zambia to a 1-1 draw in an explosive Group C encounter on Monday.
Ethiopia, one of the founding fathers of African soccer, who had fallen on hard times before enjoying a recent revival, had goalkeeper Jemal Tassew sent off in the first half of a game that also featured a missed penalty and disgruntled vuvuzela-throwing fans.
Zambia's Collins Mbesuma scored in first-half stoppage-time after Tassew had been red-carded for a dangerous foul on Chisamba Lungu, but captain Adane Girma equalized midway through the second half for Ethiopia.
"I'm happy as we missed a penalty and drew. This is our first experience after 31 years, so as you see, it was fantastic for our football," Ethiopia coach Sewnet Bishaw said. "The players have shown their characters and shown the rest of the world they can play football. The goalkeeper also has to defend, he went to defend the ball and shouldn't have been red-carded."
Zambia coach Herve Renard said: "First of all, I would like to congratulate Ethiopia for a very good performance."
"I'm not surprised — I said be careful of this team, they are able to play very good football," he said. "Today, we have to thank our goalkeeper — without Kennedy Mweene it could have been a very, very bad result. Our fans expected more than we did today and they are right. Today, it was the fault of the coach. I did not prepare the team well to start the competition — we'll see how things go after the third game."
Zambia featured 10 of the 11 that performed heroics in Gabon and Equatorial Guinea 12 months ago, with out-of-form Nyamba Mulenga the lone absentee.
The 40,000-seat Mbombela Stadium was only a quarter full, with barely a Zambia fan in the sparse, albeit colorful crowd, but one that did turn up, a man, was in a bikini.
Against the run of play, Ethiopia almost pinched the lead when Salahdin Said Ahmed pounced on a poor clearance by defender Joseph Musonda and lobbed onrushing Mweene, only for the ball to bounce over the crossbar.
Said then won a 23rd-minute penalty when he was felled by Lungu in the box, but his spot-kick lacked steel and was saved by Mweene.
At the other end, drama ensued after a high-velocity clash between Lungu and Tassew, who rushed out from his goal, boots flying.
The Ethiopia goalkeeper came off worse in the reckless assault, lying stricken on the ground for an age before being stretchered off, with Gabonese referee Castane Otogo waving him goodbye, a red card in his hand.
That incensed the Ethiopia fans, who pelted the pitch with vuvuzelas and water bottles.
To add to the tension, a South African fighter jet chose that moment to scream low over the stadium, as Zerihun Tadele entered the fray to replace Tassew.
Zambia went in front when Mbesuma ran on to Isaac Chansa's headed pass to shoot left-footed past Tadele with the Ethiopia defense at fault.
That provoked another angry volley of vuvuzelas, cutting short the Zambia players' celebrations and prompting the arrival on the touchline of riot police.
With their numerical advantage, Zambia emerged for the second half eager to put the game to bed, but Ethiopia had other plans.
On 65 minutes, Addis Hintsa, seconds after coming on for Getaneh Kebede, picked out Said, who, in turn, found Girma, with the captain slotting in a close-range shot.


text:
A Production Asset Management (ProdAM) System
Project description
Stalker is an Open Source Production Asset Management (ProdAM) Library designed specifically for Animation and VFX Studios but can be used for any kind of projects. Stalker is licensed under LGPL v2.1.
- Features:
- Designed for animation and VFX Studios.
- Platform independent.
- Default installation handles nearly all the asset and project management needs of an animation and vfx studio.
- Customizable with configuration scripts.
- Customizable object model (Stalker Object Model - SOM).
- Uses TaskJuggler as the project planing and tracking backend.
- Can be used with any kind of databases supported by SQLAlchemy.
- Can be connected to all the major 3d animation packages like Maya, Houdini, Nuke, Softimage, Vue, Blender etc. and any application that has a Python API.
- Stalker is build over these other OpenSource projects:
- Python
- SQLAlchemy and Alembic
- Jinja2
- TaskJuggler
Stalker as a library has no graphical UI, it is a python library that gives you the ability to build your pipeline on top of it. There are other python packages like the Open Source Pyramid Web Application Stalker Pyramid and the Open Source pipeline library Anima Tools which has PyQt/PySide UIs for applications like Maya, Nuke, Houdini, Eyeon Fusion, Photoshop etc.
The latest development version is available in Google Project page of Stalker or can be directly cloned with the following command if you already have mercurial installed:
hg clone https://stalker.googlecode.com/hg/ stalker
Stalker Changes
- Update: Version.__repr__ results with a more readable string.
- New: Added a generalized generator called stalker.models.walk_hierarchy() that walks and yields the entities over the given attribute in DFS or BFS fashion.
- New: Added Task.walk_hierarchy() which iterates over the hierarchy of the task. It walks in a breadth first fashion. Use method=0 to walk in depth first.
- New: Added Task.walk_dependencies() which iterates over the dependencies of the task. It walks in a breadth first fashion. Use method=0 to walk in depth first.
- New: Added Version.walk_hierarchy() which iterates over the hierarchy of the version. It walks in a depth first fashion. Use method=1 to walk in breadth first.
- New: Added Version.walk_inputs() which iterates over the inputs of the version. It walks in a depth first fashion. Use method=1 to walk in breath first.
- Update: stalker.models.check_circular_dependency() function is now using stalker.models.walk_hierarchy() instead of recursion over itself, which makes it more robust in deep hierarchies.
- Fix: db.init() now updates the statuses of already created status lists for Task, Asset, Shot and Sequence classes.
Update: Revision class is renamed to Review and introduced a couple of new attributes.
New: Added a new workflow called "Task Review Workflow". Please see the documentation about the new workflow.
Update: Task.responsible attribute is now a list which allows multiple responsible to be set for a Task.
New: Because of the new "Task Review Workflow" task statuses which are normally created in Stalker Pyramid are now automatically created in Stalker database initialization. The new statuses are Waiting For Dependency (WFD), Ready To Start (RTS), Work In Progress (WIP), Pending Review (PREV), Has Revision (HREV), On Hold (OH), Stopped (STOP) and Completed (CMPL) are all used in Task, Asset, Shot and Sequence status lists by default.
New: Because of the new "Task Review Workflow" also a status list for Review class is created by default. It contains the Statuses of New (NEW), Requested Revision (RREV) and Approved (APP).
Fix: Users.login column is now unique.
Update: Ticket workflow in config is now using the proper status names instead of the lower case names of the statuses.
New: Added a new exception called StatusError which states the entity status is not suitable for the action it is applied to.
New: Studio instance now stores the scheduling state to the database to prevent two scheduling process to override each other. It also stores the last schedule message and the last schedule date and the id of the user who has done the scheduling.
New: The Task Dependency relation is now using an Association Object instead of just a Secondary Table. The Task.depends and Task.dependent_of attributes are now association_proxies.
Also added extra parameters like dependency_target, gap_timing, gap_unit and gap_model to the dependency relation. So all of the dependency relations are now able to hold those extra information.
Updated the task_tjp_template to reflect the details of the dependencies that a task has.
New: ScheduleMixin class now has some default class attributes that will allow customizations in inherited classes. This is mainly done for TaskDependency class and for the gap_timing, gap_unit, gap_model attributes which are in fact synonyms of schedule_timing, schedule_unit and schedule_model attributes coming from the ScheduleMixin class. So by using the __default_schedule_attr_name__ Stalker is able to display error messages complaining about gap_timing attribute instead of schedule_timing etc.
New: Updating a task by calling Task.request_revision() will now set the TaskDependency.dependency_target to 'onstart' for tasks those are depending to the revised task and updated to have a status of DREV, OH or STOP. Thus, TaskJuggler will be able to continue scheduling these tasks even if the tasks are now working together.
Update: Updated the TaskJuggler templates to make the tjp output a little bit more readable.
New: ScheduleMixin now creates more localized (to the mixed in class) column and enum type names in the mixed in classes.
For example, it creates the "TaskScheduleModel" enum type for "Task" class and for "TaskDependency" it creates "TaskDependencyGapModel" with the same setup following the "{{class_name}}{{attr_name}}Model" template.
Also it creates "schedule_model" column for Task, and "gap_model" for TaskDependency class.
Update: Renamed the "TaskScheduleUnit" enum type name to "TimeUnit" in ScheduleMixin.
New: Added new class called Revision to hold info about Task revisions.
Update: Renamed ScheduleMixin to DateRangeMixin.
New: Added a new mixin called ScheduleMixin (replacing the old one) which adds attributes like schedule_timing, schedule_unit, schedule_model and schedule_constraint.
New: Added Task.tickets and Task.open_tickets properties.
Update: Removed unnecessary arguments (project_lead, tasks, watching, last_login) from User class.
Update: The timing_resolution attribute is moved from the DateRangeMixin to Studio class. So instances of classes like Project or Task will not have their own timing resolution anymore.
New: The Studio instance now overrides the values on stalker.defaults on creation and on load, and also the db.setup() function lets the first Studio instance that it finds to update the defaults. So it is now possible to use stalker.defaults all the time without worrying about the Studio settings.
Update: The Studio.yearly_working_days value is now always an integer.
New: Added a new method ScheduleMixin.least_meaningful_time_unit() to calculate the most appropriate timing unit and the value of the given seconds which represents an interval of time.
So it will convert 3600 seconds to 1 hours, and 8424000 seconds to 1 years if it represents working time (as_working_time=True) or 2340 hours if it is representing the calendar time.
New: Added a new method to ScheduleMixin called to_seconds(). The to_seconds() method converts the given schedule info values (schedule_timing, schedule_unit, schedule_model) to seconds considering if the given schedule_model is work time based ('effort' or 'length') or calendar time based ('duration').
New: Added a new method to ScheduleMixin called schedule_seconds which you may recognise from Task class. What it does is pretty much the same as in the Task class, it converts the given schedule info values to seconds.
Update: When a TimeLog expands a task, the task schedule info values are now expanded by using the least meaningful timing unit.
Update: In DateRangeMixin, when the start, end or duration arguments given so that the duration is smaller then the defaults.timing_resolution the defaults.timing_resolution will be used as the duration and the end will be recalculated by anchoring the start value.
New: Adding a TimeLog to a Task and extending its schedule timing will now always use the least meaningful timing unit. So expanding a task from 16 hours to 18 hours will result a task with 2 days of schedule (considering the daily_working_hours = 9).
Update: Moved the daily_working_hours attribute from Studio class to WorkingHours class as it was much related to this one then Studio class. Left a property with the same name in the Studio class, so it will still function as it was before but there will be no column in the database for that attribute anymore.
- Fix: Fixed a bug in stalker.models.auth.LocalSession where stalker was complaining about "copy_reg" module, it seems that it is related to this bug.
- Update: Fixed a little bug in Link.extension property setter.
- New: Moved the stalker.models.env.EnvironmentBase class to "Anima Tools" python module.
- Fix: Fixed a bug in stalker.models.task.Task._responsible_getter() where it was always returning the greatest parents responsible as the responsible for the child task when the responsible is set to None for the child.
- New: Added stalker.models.version.Version.naming_parents which returns a list of parents starting from the closest parent Asset, Shot or Sequence.
- New: stalker.models.version.Version.nice_name now generates a name starting from the closest Asset, Shot or Sequence parent.
- New: Ticket action methods (resolve, accept, reassign, reopen) now return the created TicketLog instance.
- Update: Added tests for negative or zero fps value in Project class.
- Fix: Minor fix to schedule_timing argument in Task class, where IDEs where assuming that the value passed to the schedule_timing should be integer where as it accepts floats also.
- Update: Removed bg_color and fg_color attributes (and columns) from Status class. Use SimpleEntity.html_class and SimpleEntity.html_style attributes instead.
- New: Added Project.open_tickets property.
- Fix: Fixed an inconvenience in SimpleEntity.__init__() when a date_created argument with a value is later than datetime.datetime.now() is supplied and the date_updated argument is skipped or given as None, then the date_updated attribute value was generated from datetime.datetime.now() this was causing an unnecessary ValueError. This is fixed by directly copying the date_created value to date_updated value when it is skipped or None.
- New: SimpleEntity now have two new attributes called html_style and html_class which can be used in storing cosmetic html values.
- Update: Note.content attribute is now a synonym of the Note.description attribute.
- Update: Studio.schedule() now returns information about how much did it take to schedule the tasks.
- Update: Studio.to_tjp() now returns information about how much did it take to complete the conversion.
- Fix: Task.percent_complete() now calculates the percent complete correctly.
- Update: Added cascade attributes to all necessary relations for all the classes.
- Update: The Version class is not mixed with the StatusMixin anymore. So the versions are not going to be statusable anymore. Also created alembic revision (a6598cde6b) for that update.
- Update: TaskJugglerScheduler and the Studio classes are now returning the stderr message out of their schedule() methods.
- Fix: Disabled some deep debug messages on TaskJugglerScheduler._parse_csv_file().
- Fix: Fixed a flush issue related to the Task.parent attribute which is lazily loaded in Task._schedule_seconds_setter().
- Fix: As usual distutil thinks 0.2.0 is a lower version number than 0.2.0.rc5 (I should have read the documentation again and used 0.2.0.c5 instead of 0.2.0.rc5) so this is a dummy update to just to fix the version number.
- Update: Vacation tjp template now includes the time values of the start and end dates of the Vacation instance.
- Update: For a container task, Task.total_logged_seconds and Task.schedule_seconds attributes are now using the info of the child tasks. Also these attributes are cached to database, so instead of querying the child tasks all the time, the calculated data is cached and whenever a TimeLog is created or updated for a child task (which changes the total_logged_seconds for the child task) or the schedule_timing or schedule_unit attributes are updated, the cached values are updated on the parents. Allowing Stalker to display percent_complete info of a container task without loading any of its children.
- New: Added Task.percent_complete attribute, which calculates the percent of completeness of the task based on the Task.total_logged_seconds and Task.schedule_seconds attributes.
- Fix: Added TimeLog.__eq__() operator to more robustly check if the time logs are overlapping.
- New: Added Project.percent_complete, Percent.total_logged_seconds and Project.schedule_seconds attributes.
- Update: ScheduleMixin._validate_dates() does not set the date values anymore, it just return the calculated and validated start, end and duration values.
- Update: Vacation now can be created without a user instance, effectively making the Vacation a Studio wide vacation, which applies to all users.
- Update: Vacation.__strictly_typed__ is updated to False, so there is no need to create a Type instance to be able to create a Vacation.
- New: Studio.vacations property now returns the Vacation instances which has now user.
- Update: Task.start and Task.end values are no more read from children Tasks for a container task over and over again but calculated whenever the start and end values of a child task are changed or a new child is appended or removed.
- Update: SimpleEntity.description validation routine doesn't convert the input to string anymore, but checks the given description value against being a string or unicode instance.
- New: Added Ticket.summary field.
- Fix: Fixed Link.extension, it is now accepting unicode.
New: Added a new attribute to Version class called latest_version which holds the latest version in the version queue.
New: To optimize the database connection times, stalker.db.setup() will not try to initialize the database every time it is called anymore. This leads a ~4x speed up in database connection setup. To initialize a newly created database please use:
# for a newly created database from stalker import db db.setup() # connects to database db.init() # fills some default values to be used with Stalker # for any subsequent access just use (don't need to call db.init()) db.setup()
Update: Removed all __init_on_load() methods from all of the classes. It was causing SQLAlchemy to eagerly load relations, thus slowing down queries in certain cases (especially in Task.parent -> Task.children relation).
Fix: Fixed Vacation class tj3 format.
Fix: Studio.now attribute was not properly working when the Studio instance has been restored from database.
- New: Added a new attribute to Task class called responsible.
- Update: Removed Sequence.lead_id use Task.reponsible instead.
- Update: Updated documentation to include documentation about Configuring Stalker with config.py.
- Update: The duration argument in Task class is removed. It is somehow against the idea of having schedule_model and schedule_timing arguments (schedule_model='duration' is kind of the same).
- Update: Updated task documentation.
- New: Added Version.created_with attribute to track the environment or host program name that a particular Version instance is created with.
- Update: Moved the Pyramid part of the system to another package called stalker_pyramid.
- Fix: Fixed setup.py where importing stalker to get the __version__ variable causing problems.
- New: Added Version.latest_published_version and Version.is_latest_published_version().
- Fix: Fixed Version.__eq__(), now Stalker correctly distinguishes different Version instances.
- New: Added Repository.to_linux_path(), Repository.to_windows_path(), Repository.to_osx_path() and Repository.to_native_path() to the Repository class.
- New: Added Repository.is_in_repo(path) which checks if the given path is in this repo.
- Update: Renamed Version.version_of attribute to Version.task.
- Fix: Fixed Version.version_number where it was not possible to have a version number bigger than 2.
- Fix: In db.setup() Ticket statuses are only created if there aren't any.
- Fix: Added Vacation class to the registered class list in stalker.db.
- Update: Task.schedule_constraint is now reflected to the tjp file correctly.
- Fix: check_circular_dependency() now checks if the entity and the other_entity are the same.
- Fix: Task.to_tjp() now correctly add the dependent tasks of a container task.
- Fix: Task.__eq__() now correctly considers the parent, depends, resources, start and end dates.
- Update: Task.priority is now reflected in tjp file if it is different than the default value (500).
- New:: Added a new class called Vacation to hold user vacations.
- Update: Removed dependencies to pyramid.security.Allow and pyramid.security.Deny in couple of packages.
- Update: Changed the way the stalker.defaults is created.
- Fix: EnvironmentBase.get_version_from_full_path(), EnvironmentBase.get_versions_from_path(), EnvironmentBase.trim_repo_path(), EnvironmentBase.find_repo methods are now working properly.
- Update: Added Version.absolute_full_path property which renders the absolute full path which also includes the repository path.
- Update: Added Version.absolute_path property which renders the absolute path which also includes the repository path.
- Fix: Fixed LocalSession._write_data(), previously it was not creating the local session folder.
- New: Added a new method called LocalSession.delete() to remove the local session file.
- Update: Link.full_path can now be set to an empty string. This is updated in this way for Version class.
- Update: Updated the formatting of SimpleEntity.nice_name, it is now possible to have uppercase letters and camel case format will be preserved.
- Update: Version.take_name formatting is enhanced.
- New: Task class is now mixed in with ReferenceMixin making it unnecessary to have Asset, Shot and Sequence classes all mixed in individually. Thus removed the ReferenceMixin from Asset, Shot and Sequence classes.
- Update: Added Task.schedule_model validation and its tests.
- New: Added ScheduleMixin.total_seconds and ScheduleMixin.computed_total_seconds.
- New: Version class now has two new attributes called parent and children which will be used in tracking of the history of Version instances and track which Versions are derived from which Version.
- New: Versions instances are now derived from Link class and not Entity.
- Update: Added new revisions to alembic to reflect the change in Versions table.
- Update: Links.path is renamed to Links.full_path and added three new attributes called path, filename and extension.
- Update: Added new revisions to alembic to reflect the change in Links table.
- New: Added a new class called LocalSession to store session data in users local filesystem. It is going to be replaced with some other system like Beaker.
- Fix: Database part of Stalker can now be imported without depending to Pyramid.
- Fix: Fixed documentation errors that Sphinx complained about.
- No changes in SOM.
- Update: FilenameTemplate's are not strictly typed anymore.
- Update: Removed the FilenameTemplate type initialization, FilenameTemplates do not depend on Types anymore.
- Update: Added back the plural_class_name (previously plural_name) property to the ORMClass class, so all the classes in SOM now have this new property.
- Update: Added accepts_references attribute to the EntityType class.
- New: The Link class has a new attribute called original_filename to store the original file names of link files.
- New: Added alembic to the project requirements.
- New: Added alembic migrations which adds the accepts_references column to EntityTypes table and original_name to the Links table.
- Stalker is now compatible with Python 2.6.
- Task:
- Update: Tasks now have a new attribute called watchers which holds a list of User instances watching the particular Task.
- Update: Users now have a new attribute called watching which is a list of Task instances that this user is watching.
- TimeLog:
- Update: TimeLog instances will expand Task.schedule_timing value automatically if the total amount of logged time is more than the schedule_timing value.
- Update: TimeLogs are now considered while scheduling the task.
- Fix: TimeLogs raises OverBookedError when appending the same TimeLog instance to the same resource.
- Auth:
- Fix: The default ACLs for determining the permissions are now working properly.
- WorkingHours.is_working_hour() is working now.
- WorkingHours class is moved from stalker.models.project to stalker.models.studio module.
- daily_working_hours attribute is moved from stalker.models.project.Project to stalker.models.studio.Studio class.
- Repository path variables now ends with a forward slash even if it is not given.
- Updated Project classes validation messages to correlate with Stalker standard.
- Implementation of the Studio class is finished. The scheduling works like a charm.
- It is now possible to use any characters in SimpleEntity.name and the derived classes.
- Booking class is renamed to TimeLog.
Added new attribute to WorkingHours class called weekly_working_hours, which calculates the weekly working hours based on the working hours defined in the instance.
Task class now has a new attribute called schedule_timing which is replacing the effort, length and duration attributes. Together with the schedule_model attribute it will be used in scheduling the Task.
Updated the config system to the one used in oyProjectManager (based on Sphinx config system). Now to reach the defaults:
# instead of doing the following from stalker.conf import defaults # not valid anymore # use this from stalker import defaults
If the above idiom is used, the old defaults module behaviour is retained, so no code change is required other than the new lower case config variable names.
- A new property called to_tjp added to the SimpleEntity class which needs to be implemented in the child and is going to be used in TaskJuggler integration.
- A new attribute called is_scheduled added to Task class and it is going to be used in Gantt charts. Where it will lock the class and will not try to snap it to anywhere if it is scheduled.
- Changed the resolution attribute name to timing_resolution to comply with TaskJuggler.
- ScheduleMixin:
- Updated ScheduleMixin class documentation.
- There are two new read-only attributes called computed_start and computed_end. These attributes will be used in storing of the values calculated by TaskJuggler, and will be used in Gantt Charts if available.
- Added computed_duration.
- Task:
- Arranged the TaskJuggler workflow.
- The task will use the effort > length > duration attributes in to_tjp property.
- Changed the license of Stalker from BSD-2 to LGPL 2.1. Any version previous to 0.2.0.a9 will be still BSD-2 and any version from and including 0.2.0.a9 will be distributed under LGPL 2.1 license.
- Added new types of classes called Schedulers which are going to be used in scheduling the tasks.
- Added TaskJugglerScheduler, it uses the given project and schedules its tasks.
- TagSelect now can be filled by setting its value attribute (Ex: TagSelect.set('value', data))
- Added a new method called is_root to Task class. It is true for tasks where there are no parents.
- Added a new attribute called users to the Department class which is a synonym for the members attribute.
- Task:
- Task class is now preventing one of the dependents to be set as the parent of a task.
- Task class is now preventing one of the parents to be set as the one of the dependents of a task.
- Fixed autoflush bugs in Task class.
- Fixed admin users department initialization.
- Added thumbnail attribute to the SimpleEntity class which is a reference to a Link instance, showing the path of the thumbnail.
- Fixed Circular Dependency bug in Task class, where a parent of a newly created task is depending to another task which is set as the dependee for this newly created task (T1 -> T3 -> T2 -> T1 (parent relation) -> T3 -> T2 etc.).
Changed these default setting value names to corresponding new names:
- Added default settings for project working hours (WORKING_HOURS, DAY_ORDER, DAILY_WORKING_HOURS)
- Added a new variable for setting the task time resolution called TIME_RESOLUTION.
Removed Project.project_tasks attribute, use Project.tasks directly to get all the Tasks in that project. For root task you can do a quick query:
This will also return the Assets, Sequences and Shots in that project, which are also Tasks.
Users are now assigned to Projects by appending them to the Project.users list. This is done in this way to allow a reduced list of resources to be shown in the Task creation dialogs.
Added a new helper class for Project working hour management, called WorkingHours.
Added a new attribute to Project class called working_hours which holds stalker.models.project.WorkingHours instances to manage the Project working hours. It will directly be passed to TaskJuggler.
- Removed the Task.task_of attribute, use Task.parent to get the owner of this Task.
- Task now has two new attributes called Task.parent and Task.children which allow more complex Task-to-Task relation.
- Secondary table name for holding Task to Task dependency relation is renamed from Task_Tasks to Task_Dependencies.
- check_circular_dependency function is now accepting a third argument which is the name of the attribute to be investigated for circular relationship. It is done in that way to be able to use the same function in searching for circular relations both in parent/child and depender/dependee relations.
- Added a new attribute to ScheduleMixin for time resolution adjustment. Default value is 1 hour and can be set with stalker.conf.defaults.TIME_RESOLUTION. Any finer time than the resolution is rounded to the closest multiply of the resolution. It is possible to set it from microseconds to years. Although 1 hour is a very reasonable resolution which is also the default resolution for TaskJuggler.
- ScheduleMixin now uses datetime.datetime for the start and end attributes.
- Renamed the start_date attribute to start.
- Renamed the end_date attribute to end
Removed the TaskableEntity.
Asset, Sequence and Shot classes are now derived from Task class allowing more complex Task relation combined with the new parent/child relation of Tasks. Use Asset.children or Asset.tasks to reach the child tasks of that asset (same with Sequence and Shot classes).
- Removed the sequence and introduced sequences attribute in Shot class. Now one shot can be in more than one Sequence. Allowing more complex Shot/Sequence relations..
- Shots can now be created without a Sequence instance. The sequence attribute is just used to group the Shots.
- Shots now have a new attribute called scenes, holding Scene instances. It is created to group same shots occurring in the same scenes.
In tests all the Warnings are now properly handled as Warnings.
- Ticket instances are now tied to Projects and it is now possible to create Tickets without supplying a Version. They are free now.
- It is now possible to link any SimpleEntity to a Ticket.
- The Ticket Workflow is now fully customizable. Use stalker.conf.defaults.TICKET_WORKFLOW dictionary to define the workflow and stalker.conf.defaults.TICKET_STATUS_ORDER for the order of the ticket statuses.
Added a new class called Scene to manage Shots with another property.
Removed the output_path attribute in FilenameTemplate class.
Grouped the templates for each entity under a directory with the entity name.
- Users now can have more than one Department.
- User instances now have two new properties for getting the user tickets (User.tickets) and the open tickets (User.open_tickets).
- New shortcut Task.project returns the Task.task_of.project value.
- Shot and Asset creation dialogs now automatically updated with the given Project instance info.
- User overview page is now reflection the new design.
The code attribute of the SimpleEntity is now introduced as a separate mixin. To let it be used by the classes it is really needed.
The query method is now converted to a property so it is now possible to use it like a property as in the SQLAlchemy.orm.Session as shown below:
from stalker import Project Project.query.all() # instead of Project.query().all()
ScheduleMixin.due_date is renamed to ScheduleMixin.end_date.
Added a new class attribute to SimpleEntity called __auto_name__ which controls the naming of the instances and instances derived from SimpleEntity. If __auto_name__ is set to True the name attribute of the instance will be automatically generated and it will have the following format:
Here are a couple of naming examples:
Ticket_74bb46b0-29de-4f3e-b4e6-8bcf6aed352d Version_2fa5749e-8cdb-4887-aef2-6d8cec6a4faa
Fixed an autoflush issue with SQLAlchemy in StatusList class. Now the status column is again not nullable in StatusMixin.
Added a new class called EntityType to hold all the available class names and capabilities.
Version class now has a new attribute called inputs to hold the inputs of the current Version instance. It is a list of Link instances.
FilenameTemplate classes path and filename attributes are no more converted to string, so given a non string value will raise TypeError.
Structure.custom_template now only accepts strings and None, setting it to anything else will raise a TypeError.
Two Type's for FilenameTemplate's are created by default when initializing the database, first is called "Version" and it is used to define FilenameTemplates which are used for placing Version source files. The second one is called "Reference" and it is used when injecting references to a given class. Along with the FilenameTemplate.target_entity_type this will allow one to create two different FilenameTemplates for one class:
# first get the Types vers_type = Type.query()\ .filter_by(target_entity_type="FilenameTemplate")\ .filter_by(type="Version")\ .first() ref_type = Type.query()\ .filter_by(target_entity_type="FilenameTemplate")\ .filter_by(type="Reference")\ .first() # lets create a FilenameTemplate for placing Asset Version files. f_ver = FilenameTemplate( target_entity_type="Asset", type=vers_type, path="Assets/{{asset.type.code}}/{{asset.code}}/{{task.type.code}}", filename="{{asset.code}}_{{version.take_name}}_{{task.type.code}}_v{{'%03d'|version.version_number}}{{link.extension}}" output_path="{{version.path}}/Outputs/{{version.take_name}}" ) # and now define a FilenameTemplate for placing Asset Reference files. # no need to have an output_path here... f_ref = FilenameTemplate( target_entity_type="Asset", type=ref_type, path="Assets/{{asset.type.code}}/{{asset.code}}/References", filename="{{link.type.code}}/{{link.id}}{{link.extension}}" )
stalker.db.register() now accepts only real classes instead of class names. This way it can store more information about classes.
Status.bg_color and Status.fg_color attributes are now simple integers. And the Color class is removed.
StatusMixin.status is now a ForeignKey to a the Statuses table, thus it is a real Status instance instead of an integer showing the index of the Status in the related StatusList. This way the Status of the object will not change if the content of the StatusList is changed.
Added new attribute Project.project_tasks which holds all the direct or indirect Tasks created for that project.
User.login_name is renamed to User.login.
Removed the first_name, last_name and initials attributes from User class. Now the name and code attributes are going to be used, thus the name attribute is no more the equivalent of login and the code attribute is doing what was initials doing previously.
- Status class now has two new attributes bg_color and fg_color to hold the UI colors of the Status instance. The colors are Color instances.
SimpleEntity now has an attribute called generic_data which can hold any kind of SOM object inside and it is a list.
Changed the formatting rules for the name in SimpleEntity class, now it can start with a number, and it is not allowed to have multiple whitespace characters following each other.
The source attribute in Version is renamed to source_file.
The version attribute in Version is renamed to version_number.
The take attribute in Version is renamed to take_name.
The version_number in Version is now generated automatically if it is skipped or given as None or it is too low where there is already a version number for the same Version series (means attached to the same Task and has the same take_name.
Moved the User class to stalker.models.auth module.
Removed the stalker.ext.auth module because it is not necessary anymore. Thus the User now handles all the password conversions by itself.
PermissionGroup is renamed back to Group again to match with the general naming of the authorization concept.
Created two new classes for the Authorization system, first one is called Permission and the second one is a Mixin which is called ACLMixin which adds ACLs to the mixed in class. For now, only the User and Group classes are mixed with this mixin by default.
The declarative Base class of SQLAlchemy is now created by binding it to a ORMClass (a random name) which lets all the derived class to have a method called query which will bypass the need of calling DBSession.query(class_) but instead just call class_.query():
from stalker.models.auth import User user_1 = User.query().filter_by(name='a user name').first()
Changed the db.setup arguments. It is now accepting a dictionary instead of just a string to comply with the SQLAlchemy scaffold and this dictionary should contain keys for the SQLAlchemy engine setup. There is another utility that comes with Pyramid to setup the database under the scripts folder, it is also working without any problem with stalker.db.
The session variable is renamed to DBSession and is now a scopped session, so there is no need to use DBSession.commit it will be handled by the system it self.
Even though the DBSession is using the Zope Transaction Manager extension normally, in the database tests no extension is used because the transaction manager was swallowing all errors and it was a little weird to try to catch this errors out of the with block.
Refactored the code, all the models are now in separate python files, but can be directly imported from the main stalker module as shown:
from stalker import User, Department, Task
By using this kind of organization, both development and usage will be eased out.
task_of now only accepts TaskableEntity instances.
Updated the examples. It is now showing how to extend SOM correctly.
Updated the references to the SOM classes in docstrings and rst files.
Removed the Review class. And introduced the much handier Ticket class. Now reviewing a data is the process of creating Ticket's to that data.
The database is now initialized with a StatusList and a couple of Statuses appropriate for Ticket instances.
The database is now initialized with two Type instances ('Enhancement' and 'Defect') suitable for Ticket instances.
StatusMixin now stores the status attribute as an Integer showing the index of the Status in the status_list attribute but when asked for the value of StatusMixin.status attribute it will return a proper Status instance and the attribute can be set with an integer or with a proper Status instance.
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help
|File type
|Python version
|Upload date
|stalker-0.2.5.1.tar.gz (518.0 kB) Copy SHA256 hash SHA256
|Feb 10, 2014


text:
|Thread Tools
|Display Modes
|23rd July 2007, 02:40 AM
New Member
Join Date: Jul 2007
Posts: 1
Harness Safety Question
The other day, I used a harness for the first time, and something a little scary happened.
The wind died while I was hooked in, and I fell backwards pulling the sail on top of me. Once I was in the water, I panicked and tried to swim out from under the sail while I was still hooked in. In my disorientation, I wasn't prepaid to unhook myself underwater. Being upside down also allowed water to enter easily through the nose, causing me to swallow water and eventually surface choking.
Anyway, just wondering how to avoid that kind of thing. Any tips for gracefullly falling while being hooked in, both forwards and backwards?
|23rd July 2007, 04:09 AM
New Member
Join Date: Jul 2007
Posts: 10
RE: Harness Safety Question
What happened is a common thing. You should be prepared for the coming lulls. Look upwind to see them coming. When in a lull, I bend my knees and hang on a boom, and transfer my weight back to above my board. Maybe others do it in a different way, I don't know.
If you do fall backwards while hooked in, don't release the sail until you are in the water, then unhook and swim from under the sail in one direction. Don't change it Being under the sail I swim forward to the mast, find it with my hands and use it a support and reference point when to swim up.
Often I get unhooked somehow before I fall into the water so I hit the water with the sail above me in the air which lets me waterstart immediately
When falling forwards while hooked in do not release the sail for a different reason. Feet remain on the board, too. You stay in the push-up position. Thus you cannot tear the sail with your body.
|23rd July 2007, 06:33 AM
RE: Harness Safety Question
I agree, make sure you look upwind all the time to spot gusts and lulls so they don't hit you unexpectantly. If I know I am going to fall backwards, I usually just sharply pull the boom towards me and I unhook. that way I can land in the water and really extend my arms to keep the sail flying. Saves a lot of work recovering the rig.
When I know a lull is coming, I bring my hands closer together to get myself further away from the rig, and lift the hips while pushing the boom away. this action brings you more over the board and won't result in a splash if done correctly and in anticipation for a lull.
If you are underwater with the sail ontop of you and you are hooked in, try tapping the boom 3 times to ease some of the panic away from the situation. After that, calmly move your hands towards the lines and raise your hips towards the boom and manually unhook the lines with your hands. After that, blow out through your nose so water doesn't come in and you are ready to resurface. ahahah just remember not to kick the fin
|23rd July 2007, 09:45 AM
Dream Team - School Guru
Join Date: Aug 2006
Posts: 2,202
RE: Harness Safety Question
Hi Juan,
Nick and Thomas have given you some good ideas here.
MOst of all you need to avoid panic. Best way to do that is as Nick suggests.
I recommend that sailors at your skill level actually "practice" getting themselves unhooked from the harness with the sail on top of them.
Do this ""practice" in shallow water, where you can simply stand up to get some air if you have any problems. You can make it safer if you find someone learning the same skills and you have them be your "spotter" until you have a "learned response" pretty well dialed in.
Then you can return the favor and spot for them as they learn the same skills.
If you practice getting unhooked and the best way out from under your sail (usually following the boom to the mast is the shortest distance and the easiest/fastest way out) when you find yourself under your sail in the future you will (without any panic) simply use your back hand to clear the harness line off the hook, then follow your front hand along the boom and out from under the sail.
Also, a Nick and Thomas suggest, you need to kep a sharp eye upwind and ahead to "anticipate" whether you're going to have to deal with a gust or a lull.
The strategies suggested should serve you very well.
If you fall forward, on top of your sail, do not let go of the bbom.
Better to bend your boom than fly uncontrollably into the sail/mast/boom with your out of control body.
As Nick suggests, hold onto the boom, keep your feet/toes on the board, and ride it down to the water.
Practice is more important for getting out from under your sail quickly,
so work on that first.
But you also need to work on riding the boom down in leeward falls and how to turn catapault type falls into simple leeward falls.
You can always simply "bail out" but this has some risk involved as well. Boards have been known to sail for quite a ways without the sailor so you need good swimming skills.
Also, your board and rig become somewhat an "unguided" missle, and can do damage to the board/rig or to others sailing nearby if you simply "let go".
Try to learn where the "point of inevitability" is for each type of fall, and learn to ease up on your sheeting angle, fin pressure, etc. BEFORE everything comes apart.
Hope this helps,
« Previous Thread | Next Thread »
|Thread Tools
|Display Modes
Linear Mode
All times are GMT +7. The time now is 10:27 AM.


text:
Helicopters are where it's at.
Unless you want your video looking like it was shot on an iPhone, you'll need big, heavy, expensive cameras.
UAVs can't deal with those.
I agree, I've seen it done with a Fishing Rod, a Helium Balloon and a Go-Pro camera.
A small consumer-grade HD camera won't do either, at least not for anyone wanting to make good quality film. With proper exposure, colour balance, and contrast (no overexposed backgrounds on pitch black foregrounds - OK that's exaggerating of course but you get the idea).
Those UAVs the US army is using nowadays can carry weapons and bombs. Those bombs could be replaced by movie cameras - the carrying capacity is not an issue. The air resistance of a camera mounted to the plane could be, though nothing a stronger engine can not overcome; the lower operational range will still be good enough for a movie shoot.
The main drawback of plane over helicopter type UAV is that a plane must maintain a minimum speed. And for many shots, like filming a walking/running person from above, that minimum speed is far too high, and one would need a helicopter for that.
And then again I don't see why we can't build unmanned helicopters like we can build unmanned planes. It's not that they are that different. Navigation is the same; flight control is different of course but I don't see why a computer wouldn't be able to handle that as it's pretty straight-forward.
Isn't the RED Epic considered to be good enough for cinematography? There's a more compact setup using this camera on an octocopter and the output looks adequately stabilized to me: http://www.omstudios.de/OMCOPTER-Flying-Epic [omstudios.de]
The latest Spiderman movie was recorded using Epic Red cameras
http://www.techradar.com/news/photography-video-capture/red-epic-cam-footage-of-amazing-spider-man-best-ever-964445 [techradar.com]
Very simple: try flying an RC helicopter sometime. (Hint as to the outcome: helicopters meant for beginners...also the easiest ones to fly...come with extra replacement rotors for a reason.) They are incredibly difficult to pilot; just getting them off the ground is a herculean task. A perfect example of the learning curve showed up on a Mythbusters episode, the one where the myth was that you could cause a helicopter to crash by putting a postage stamp on the end of a rotor blade, thus destabilizing it. They were going to do it at scale with a decent-sized RC copter. They ended up having to abandon that approach because after a whole day of trying to learn how to get the thing off the ground without making it crash, not one of them had managed to do it.
Now, take that intense learning curve, and think about this...small UAVs [wikipedia.org] are the main thrust of the UAV market now. Man-portable and carried by platoons or squads, they allow troops to see what's over a hill or in a neighborhood themselves, without the need for them to have a Predator tasked to them, without the need for them to have someone else try to interpret the view without the context of what things look like for the ground forces, or the need for a high-speed data link so that the ground forces can see for themselves. And unlike a Predator, it doesn't take over 160 people to maintain and keep one going. They're cheap, they're flexible, and they're actually better-suited to the intended mission of providing tactical real-time data to small units.
But here's the rub, and why these squad-level devices are all airplanes. Remember that learning curve for a helicopter? Apply that at the squad level. You have just added a new skill set that at least one person in each squad would have to develop, one that has nothing to do with any of their other skills, and is harder than any of their other skills. Imagine if shooting a rifle was so difficult that for the first few days you were learning, not only would you miss the target completely but the rifle would explode. How many riflemen would there be? How would that affect military doctrine? I bet you'd still see archers on the battlefield.
Yes I know those RC choppers are tough to fly. But that are RC aircraft, not drones. Drones are supposed to fly themselves, as in operator gives instructions like "go from A via B to C and then back to base". Drone does the rest.
The small planes carried by troops to look over the next hill, that's more like an RC plane than a drone. Those things are usually flown within eyesight of the operator, who manually steers the craft. And even then one needs serious practice to fly one.
Anyway it should not be too ha
Helicopters are where it's at. Unless you want your video looking like it was shot on an iPhone, you'll need big, heavy, expensive cameras. UAVs can't deal with those.
Evidence to the contrary - the article is about a UAV filming with a bulky HD camera attached to its undercarriage. So it is possible, probably just a bit too expensive at the moment.
Naa, you live in the dark ages. Many of these small gizmos can carry the RED camera
I have an Air Hawk with built-in cam and with a little tweaking of the airframe, it now holds a digital HD camera (Hammacher Schlemmer pen cam, minus the ink barrel!), so two for the price of one (almost, the whole setup costs £90 including batteries).
Do you mean one of the Air Hogs planes? You can get a non-HD Air Hog plane for around $50 at Wally-World. I know 'cause I seen me do it. I've been thinking about getting the new Parrot but they apparently shipped it missing quite a few advertised features. Waiting to see if they've addressed everything with the new software.
nope, it's a Blitz Air Hawk with custom shell modeled on the Bell 222, in Airwolf paint scheme; SD camera mounted in the nose at 45 degree downangle and the H/S HD pen cam is mounted in the belly - pointed vertically down. Depending on the weight I may add another channel and put in a rotating axis for the belly cam.
There again I might go out on a limb and buy an Eskey.
Your headline jumps the gun; as the article you link to also says: it is a possibility, but we can't say what really happened until the crash investigation has finished.
"Now with the use of the Camcopter S-100 UAS my dreams have become a reality and I'm very excited for what the future holds with these advancements."
When did
Yeah, because this place is the target market for $400,000 items.
...That was used in 1985. The films "Natural States" and "Desert Vision" come to mind. http://www.imdb.com/title/tt1518224/fullcredits#cast [imdb.com] and http://www.imdb.com/title/tt0167888/fullcredits#cast [imdb.com]
I first heard about this idea in the mid-90's when it was used for a long flying shot in a big film (don't remember which) where they didn't want downwash to disturb the grass/water/whatever. I'm not surprised to hear about even earlier use. It's a simple idea.
I bet a hobbyist could do this for under $500 today.
It's still a young, niche industry, but as costs come down, these little vehicles could become a common sight on the film shoots of the future.
Porn! And don't give me that look. You all were thinking it too.
Yeah, I know Rotomotion [rotomotion.com] has been doing this for years. Their YouTube channel [youtube.com] is pretty badass.
It's already being done, its called FPV or First Person View flying and it's a LOT of fun! Check out some of the videos made by these users
If you want to find out more check out:
Could the use of unmanned aerial vehicles open up a whole new world of filmmaking?
Sure. The bad thing is just that most of us, even if we might be playing a major role in one of these newly made films, are unlikely to ever see them.
My father was a tremendous model airplane, and photography, enthusiast. In 1962 he strapped his Leica to the bottom of one of his radio-controlled models and took black-and-white photos of the airfield where he flew his models, and the adjacent industrial plant. The shutter was tripped by the Leica's built-in timer; he got pictures of approximately what he wanted by running a second timer on the ground and ensuring the plane was in right place at the right time. The timer was used because the radio-control equipment of the day (at least, the equipment he could afford) had only one channel, used for rudder control. He used black-and-white film so that he could do his own developing; besides the fact that he just liked doing it, doing his own developing allowed him to compensate for things like underexposures. (To compensate for vibration blur, present despite all of his anti-vibration efforts, he was always underexposing these shots.)
By 1971, the R/C art had improved to the point that multichannel radio equipment (4 to 6 channels) was commonplace, and the photographic art had improved to the point that small, lightweight motion-picture cameras were also affordable. To take advantage, he took a handheld Super 8 mm movie camera and mounted it on a wire frame on the fuselage over the wing, pointed ahead and slightly down, so that the arc of the propeller was just visible in the resulting images (to give scale). He quickly learned to fly very slowly and gently; images taken during even the most mundane of maneuvers would be enough to induce nausea when viewed on the screen later.
Because of the consumer-grade equipment used, these photos and films will never win any prizes for photographic art; still, it is always a pleasure to see something state-of-the-art in its time, turn into something available at Wal-Mart a few years later.
I have a close friend who is a line producer and has been behind a lot of different shows you've seen on a particular set of science-oriented cable TV channels. I've listened while she's made phone calls for work, sorting out logistics and other such things...it's incredible what goes into a lot of this programming. Absolutely fascinating stuff! Well, there are a lot of challenges to the traditional way of shooting aerial, many of which have to do with nothing more than liability. There's the
Each honest calling, each walk of life, has its own elite, its own aristocracy based on excellence of performance. -- James Bryant Conant


text:
What do you think about the implementation of 'Obamacare'?
I am not so sure even the congress knows what it means. The 2,500 should have been put out to the PEOPLE in terms they could understand. There has been enough time for both Partys to do this but they have not. Thus even the reporting by the media has been less than desired for accurate reporting. A lot of foot dragging by both sides. However the Republicans once again came up with no whizz bang ideas other than to want to pass nothing but gas!
2 Agrees | 2 Disagrees | Report Abuse »
2500 pages is what I was referring to.
0 Agrees | 2 Disagrees | Report Abuse »
Hey, at least they want to do something, not like the two no twins Sully and Leetz on our Council. They never have any ideas other than no,no,no,nada,niende,etc.
1 Agrees | 6 Disagrees | Report Abuse »
What a stupid comment Lolita, Sullivan and Leetz have brought plenty of good actions forward and gee almost all passed. Your one sided view is simply wrong info and no one should count on your info. Try making honest statements about who you support and do not play the attack game, very unbecoming.
4 Agrees | 3 Disagrees | Report Abuse »
Angelica...your eloquence is noted. Your information is jaded. Just my opinion.
0 Agrees | 3 Disagrees | Report Abuse »
The great liar ObumO promised a 2500 dollar reduction in health care cost..For all!! - HAHAHAHA - SUCKERS !! You bought it !! Private insured ? Vote for ObumO? GOOD !! You get a (so far) a 26.4% increase in ur bill in Florida. In some states as high as 60% and rising. Insured at ur job?? WHOOPS!! Wonder when will ur hours be cut? When will u be dropped like UPS families?? The criminal ObumO has reduced the country to a 29 hour economy under the threat of this disaster. The future tax burden on whats left of WORKING Americans will be staggering. Wait till King ObumO gets his new illegal invaders voters on the health roles..Millions of them! Whos paying that bill with less than 50% of the country paying taxes? Hows ur hope and change now, half-wits?? Impeach ObumO National Criminal Disgrace.
0 Agrees | 2 Disagrees | Report Abuse »
Switch..If u remember the photo of your national disgrace, the DemoSocialist criminal pelosi, standing there holding it saying "We have to pass it then we'll read it" with a big grin. "Put out to the people" ?? What ?? We never got a say. What are u talking about?? Justice roberts sold his soul to the ObumOdevil, and that was it. Period. What party is ramming it through AGAINST the will of the majority of SANE Americans? The same Majority still knows its a disaster on all levels..Democrats even say its a disaster for the USA..yet still King ObumO and his criminal cronies reid, pelosi, and other DemoSocialist trash will continue to push it on the country against the will of the majority of Americans. The MEDIA??? What Media?? R U Kidding?? Accurate?? OMG Switch? There has been -O- "media since the King attained the throne. There are tons of good plans out there for consideration and debate. ObumO "care" is not one. Your incredibly shallow grasp of rea
0 Agrees | 1 Disagrees | Report Abuse »
reality is amazing, yet soo scary. Millions in love with a Hollywood image..Blindly following the evil piper over the cliff, dragging the rest of us with them.
0 Agrees | 2 Disagrees | Report Abuse »
Forty-four percent want Congress to "kill it"??? How many of that 44 percent are on Medicare? Six percent in Cape Coma "have Medicare"? Give me a break. Let Cruz the Clown try to take Medicare away from them - they'd be out in the streets protesting, in their walkers, wheelchairs, crutches and canes. Want to get rid of the ACA? Let's get rid of Medicare too.
0 Agrees | 1 Disagrees | Report Abuse »
Sorry Disgusting1 now at 45% and growing...about 65% nation wide want it killed. Rightly so..Its a disaster for working Americans and heath care. Impeach ObumO National Disgrace
0 Agrees | 0 Disagrees | Report Abuse »
Lolita now now stick to question at hand. You are veering off the yellow brick road. You're making yourself look bad.
0 Agrees | 0 Disagrees | Report Abuse »
DOA before this healh care law was brought forward a family of 4 all under the age of 65 years old would have been paying several thousand dollars a year more for private coverage under normal health conditions. A family with any type of prior health issue, forget about it. Many companies did not even want to talk to them. You don't seem to have a problem with the way National Flood Insurance is set up living in a flood zone. Do you?
0 Agrees | 0 Disagrees | Report Abuse »
If you want to talk socialist check out your government (my government too). The various agencies you are calling primo example of capitalism? You just witnessed in Cape Coral the entire increase in taxes covered by the city for their staff with a 3% cost of living wage increase and the 5% BONUS on top of the 3% increase. This country has had a social/capitalist relation even before the Depression of 1929 to some extent. You leave the same groups in control too long and the pendulum swings to far one way or the other. That is in the government or the business world.
0 Agrees | 0 Disagrees | Report Abuse »
DOA working Americans? The ones underemployed or the part timers with no benefits like health insurance?
Tell us how do you secure your health insurance, privately, medicare, or a combination?
0 Agrees | 0 Disagrees | Report Abuse »
Showing 14 of 14 comments
Post a Comment
You must first login before you can comment.


text:
LEXINGTON, Ky. (AP) - Kastine Evans hit two free throws with 8.8 seconds left, and No. 9 Kentucky fought back from a 14-point halftime deficit Thursday to beat No. 14 South Carolina 78-74.
Jennifer O'Neill scored 19 points for the Wildcats.
The loss was the first in 19 games this season for South Carolina (20-5, 8-4 SEC) when it led at halftime.
South Carolina shot 18 of 32 in the first half, and its efficiency improved early in the second. The Gamecocks made their first five attempts after halftime and did not miss a shot until 11:05 was left.
But the Wildcats (22-3, 10-2) answered methodically, limiting their turnovers and maximizing opportunities despite a rebounding disadvantage.
(Copyright 2013 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.)


text:
Arsenal are looking to beat north London rivals Tottenham Hotspur to the signing of Eintracht Frankfurt midfielder Sebastian Rode, according to the Daily Star.
The German youngster has starred for Frankfurt in the Bundesliga this season, and the newly-promoted side have been the German top flight's surprise package - they currently sit fourth, one point behind Bayer Leverkusen and are pushing for a Champions League qualification place.
The 22-year-old has been scouted by a number of Europe's top clubs, with Bayern Munich also keeping tabs on the Germany under-21 international.
Rode has 18 months left to run on his current Frankfurt contract, and he has admitted that he plans to explore his options in the summer.
"The interest is known to me. I'll keep my feet on the ground and not start dreaming," Rode said. "Eintracht Frankfurt and I have agreed to postpone the talks so I can concentrate on my football."
The report claims Tottenham held preliminary discussions with Frankfurt over a deal for Rode last summer, but failed to reach an agreement with the Bundesliga side for the player's transfer.
But now Arsenal are keen to pinch the German starlet from under the noses of their north London rivals.
Rode has three caps for Germany under-21s, and has appeared at every national age group level from under-18s onwards.
Do YOU want to write for GiveMeSport? Get started today by signing-up and submitting an article HERE: https://www.givemesport.com/writeforgms


text:
A commemorative service was held at NAS Meridian in memory of Dr. Martin Luther King, Jr.
The chapel was packed for the speeches, readings and singing that were part of the annual program.
Program chair Yvette Neal says she wanted to make it an event that would make Dr. King himself proud.
"Dr. King believed in equality and justice for all, and with that we brought in a group of very diverse individuals and put on a great program for the base," said Neal.
Lt. Commander Doug Johnson was the guest speaker and he spoke of inspiration. He said that we don't have to do grand gestures to inspire, but rather something as simple as giving your time to another.
"When I was thinking about the words for my speech I wanted it to relay what I thought embodied Dr. King's message and that was the message of inspiration," said Johnson. "So I wanted to share with the audience that we all have a responsibility to inspire one another."
Other events coming up will be held in honor of Dr. King.
A candlelight march will be held Sunday evening at 6:30. Participants will meet at the corner of Dr. Martin Luther King Drive/31st Avenue and 16th Street. The march will end at First Union Missionary Baptist Church, 610 38th Avenue.
The Meridian/Lauderdale County NAACP will host its annual Martin Luther King, Jr., Breakfast Monday at 8 a.m. at the Boys & Girls Club on 45th Avenue.
The Martin Luther King Parade will take place Monday in downtown Meridian, beginning at 12:00 noon. It will be followed by a program on the Meridian City Hall lawn.
The Annual MLK Scholarship Gala will be held Jan. 25 at the MSU Riley Center.