3 Newsroom math
Jo Craven McGinty, then of The New York Times, used simple rates and ratios to discover that a 6-story brick New Jersey hospital was the most expensive in the nation. In 2012, Bayonne Medical Center “charged the highest amounts in the country for nearly one-quarter of the most common hospital treatments,” the Times story said.
To do this story, McGinty only needed to know the number of the procedures reported to the government and the total amount each hospital charged. Dividing those to find an average price, then ranking the most common procedures, led to this surprising result.
3.1 Why numbers?
Using averages, percentages and percent change is the bread and butter of data journalism, leading to stories ranging from home price comparisons to school reports and crime trends. It may have been charming at one time for reporters to announce that they didn’t “do” math, but no longer. Instead, it is now an announcement that the reporter can only do some of the job. You will never be able to tackle complicated, in-depth stories without reviewing basic math.
The good news is that most of the math and statistics you need in a newsroom isn’t nearly as difficult as high school algebra. You learned it somewhere around the 4th grade.  But mastering this most basic arithmetic again is a requirement in the modern age.
In working with typical newsroom math, you will need to learn how to:
- Overcome your fear of numbers
- Integrate numbers into your reporting
- Routinely compute averages, differences and rates
- Simplify and select the right numbers for your story
While this chapter covers general tips, you can find specific instructions for typical newsroom math in this Appendix A, an except from Sarah Cohen’s outstanding book, Numbers in the Newsroom. It’s worth getting your own copy if you don’t already have one.
3.2 Overcoming your fear of math
When we learned to read, we got used to the idea that 26 letters in American English could be assembled into units that we understand without thinking – words, sentences, paragraphs and books. We never got the same comfort level with 10 digits, and neither did our audience.
Think of your own reaction to seeing a page of words. Now imagine it as a page of numbers.
Instead, picture the number “five”. It’s easy. It might be fingers or it might be a team on a basketball court. But it’s simple to understand.
Now picture the number 275 million. It’s hard. Unfortunately, 275 billion isn’t much harder, even though it’s magnitudes larger. (A million seconds goes by in about 11 days but you may not have been alive for a billion seconds – about 36 years.)
The easiest way to get used to some numbers is to learn ways to cut them down to size by calculating rates, ratios or percentages. In your analysis, keep an eye out for the simplest accurate way to characterize the numbers you want to use. “Characterize” is the important word here – it’s not usually necessary to be overly precise so long as your story doesn’t hinge on a nuanced reading of small differences. (And is anything that depends on that news? It may not be.)
Here’s one example of putting huge numbers in perspective. Pay attention to what you really can picture - it’s probably the $21 equivalent.
The Chicago hedge fund billionaire Kenneth C. Griffin, for example, earns about $68.5 million a month after taxes, according to court filings made by his wife in their divorce. He has given a total of $300,000 to groups backing Republican presidential candidates. That is a huge sum on its face, yet is the equivalent of only $21.17 for a typical American household, according to Congressional Budget Office data on after-tax income.
“Buying Power”, Nicholas Confessore, Sarah Cohen and Karen Yourish, The New York Times, October 2015
Originally the reporters had written it even more simply, but editors found the facts so unbelievable that they wanted give readers a chance to do the math themselves. That’s reasonable, but here’s an even simpler way to say it: “earned nearly $1 billion after taxes…He has given $300,000 to groups backing candidates, the equivalent of a dinner at Olive Garden for the typical American family , based on Congressional Budget Office income data.” (And yes, the reporter checked the price for an Olive Garden meal at the time for four people.)
3.3 Put math in its place
For journalists, numbers – or facts – make up the third leg of a stool supported by human stories or anecdotes , and insightful comment from experts. They serve us in three ways:
As summaries. Almost by definition, a number counts something, averages something, or otherwise summarizes something. Sometimes, it does a good job, as in the average height of Americans. Sometimes it does a terrible job, as in the average income of Americans. Try to find summaries that accurately characterize the real world.
As opinions. Sometimes it’s an opinion derived after years of impartial study. Sometimes it’s an opinion tinged with partisan or selective choices of facts. Use them accordingly.
As guesses. Sometimes it’s a good guess, sometimes it’s an off-the-cuff guess. And sometimes it’s a hopeful guess. Even when everything is presumably counted many times, it’s still a (very nearly accurate) guess. Yes, the “audits” of presidential election results in several states in 2021 found a handful of errors – not a meaningful number, but a few just the same.
Once you find the humanity in your numbers, by cutting them down to size and relegating them to their proper role, you’ll find yourself less fearful. You’ll be able to characterize what you’ve learned rather than numb your readers with every number in your notebook. You may even find that finding facts on your own is fun.
3.4 Going further
Tipsheets
Steve Doig’s “Math Crib Sheet”
Appendix A: Common newsroom math, adapted from drafts of the book Numbers in the Newsroom, by Sarah Cohen.

--- Gene Belcher (@Wparks91) June 25, 2019


Reviews
You have no reviews...
Post some advertisements to get reviews!
{{review.title.slice(0,25)}}
{{review.content.slice(0,20)}}...
{{review.owner}}
{{review.product_owner}}
{{review.title}}
View {{review.owner}}'s profile
View {{review.product_owner}}'s profile


📌 Timing Signals 🚦
🎙 Regular Speech 🚦5/6/7🚦
🎙 Ice 🔨 Breaker 🚦4/5/6🚦
🎙 Evaluator 📝 🚦2/2.5/3🚦
🏓 Table Topics 📮 🚦1/1.5/2🚦


Wanna know your email conversion rates?
How do you label your
lost
leads?
How do you label your
won
leads?


Gallery: The best photos from around the world The best photos from the international wire agencies as chosen by our picture editors. 29 Nov 2019, 13:23 The hair of a young French tourist flies on the view platform of the Main tower in Frankfurt, Germany, as the sun sets.AP Ron Geppert clears snow from his driveway in Mankato, Minn., after an overnight snowstorm.AP A man looks on inside a looted supermarket in Santiago, Chile.CLAUDIO SANTANA Jockey Nico de Boinville is unseated from Manofthemountain during The Ronnie Holbech And Paladin 1940 Novices' Handicap Chase at Taunton Racecourse, England.Getty The Sheikh Zayed Grand Mosque is seen from across the Khor Al Maqta.Getty Kabuki actor Ebizo Ichikawa performs during the 'Star Wars Kabuki' performance that was produced to promote the upcoming release of 'Star Wars: The Rise of Skywalker'.Getty A boy dressed in a military police costume arrives to watch the Changing of the Guard at the Planalto Presidential Palace, in Brasilia, Brazil.AP Pro-democracy protesters hold posters of US President Donald Trump during a Thanksgiving Day rally at Edinburgh Place in Hong Kong, China.Chris McGrath A demonstrator wearing a mask dances in front of a burning barricade during a protest in Santiago, Chile.ESTEBAN FELIX


Initialize Drawing
Add Drawing Info to List
Building Name
Constructed Year
Contractor
Floor
Shop
Add
Update
Delete


| 1 | package fr.sii.ogham.spring.common; | |
| 2 | ||
| 3 | public class PrefixSuffixProperties { | |
| 4 | // @formatter:off | |
| 5 | /** | |
| 6 | * You can set the path prefix for resource resolution. The aim is to define | |
| 7 | * only the name of the resource (or a subset) and the system will find it | |
| 8 | * for you. It avoids to explicitly write the whole path and let you change | |
| 9 | * the resource resolution easily.

 | |
| 10 | * | |
| 11 | * For example, you have one template located into | |
| 12 | * "/foo/template/createAccount.html" and you have one template located into | |
| 13 | * "/foo/template/resetPassword.html".

 | |
| 14 | * | |
| 15 | * So you can set the prefix path to "/foo/template/". You can now reference | |
| 16 | * the templates using only the file name: "createAccount.html" and | |
| 17 | * "resetPassword.html".

 | |
| 18 | * | |
| 19 | * Path prefix can be set globally, by template engine, by sending system | |
| 20 | * and by resolver. | |
| 21 | * For FreeMarker template engine, the priority order for | |
| 22 | * email and template loaded from classpath is (from highest priority to lowest):

 | |
| 23 | * | |
| 24 | * - (1) `ogham.email.freemarker.classpath.path-prefix`,
 | |
| 25 | * - (2) `ogham.email.template.classpath.path-prefix`,
 | |
| 26 | * - (3) `ogham.email.freemarker.path-prefix`,
 | |
| 27 | * - (4) `ogham.email.template.path-prefix`,
 | |
| 28 | * - (5) `ogham.template.path-prefix`,
 | |
| 29 | * - (6) `spring.freemarker.prefix`

 | |
| 30 | * | |
| 31 | * For Thymeleaf template engine, the priority order for | |
| 32 | * email and template loaded from classpath is (from highest priority to lowest):

 | |
| 33 | * | |
| 34 | * - (1) `ogham.email.thymeleaf.classpath.path-prefix`,
 | |
| 35 | * - (2) `ogham.email.template.classpath.path-prefix`,
 | |
| 36 | * - (3) `ogham.email.thymeleaf.path-prefix`,
 | |
| 37 | * - (4) `ogham.email.template.path-prefix`,
 | |
| 38 | * - (5) `ogham.template.path-prefix`,
 | |
| 39 | * - (6) `spring.thymeleaf.prefix`
 | |
| 40 | */ | |
| 41 | // @formatter:on | |
| 42 | private String pathPrefix; | |
| 43 | ||
| 44 | // @formatter:off | |
| 45 | /** | |
| 46 | * You can set the path suffix for resource resolution. The aim is to define | |
| 47 | * only the name of the resource (or a subset) and the system will find it | |
| 48 | * for you. It avoids to explicitly write the whole path and let you change | |
| 49 | * the resource resolution easily.

 | |
| 50 | * | |
| 51 | * For example, you have one template located into "createAccount.html" and | |
| 52 | * you have one template located into "resetPassword.html".

 | |
| 53 | * | |
| 54 | * So you can set the suffix path to ".html". You can now reference the | |
| 55 | * templates using the file name: "createAccount" and "resetPassword".

 | |
| 56 | * | |
| 57 | * Path suffix can be set globally, by template engine, by sending system | |
| 58 | * and by resolver. | |
| 59 | * For FreeMarker template engine, the priority order for | |
| 60 | * email and template loaded from classpath is (from highest priority to lowest):

 | |
| 61 | * | |
| 62 | * (1) `ogham.email.freemarker.classpath.path-suffix`,
 | |
| 63 | * (2) `ogham.email.template.classpath.path-suffix`,
 | |
| 64 | * (3) `ogham.email.freemarker.path-suffix`,
 | |
| 65 | * (4) `ogham.email.template.path-suffix`,
 | |
| 66 | * (5) `ogham.template.path-suffix`,
 | |
| 67 | * (6) `spring.freemarker.suffix`
 | |
| 68 | * | |
| 69 | * For Thymeleaf template engine, the priority order for | |
| 70 | * email and template loaded from classpath is (from highest priority to lowest):

 | |
| 71 | * | |
| 72 | * (1) `ogham.email.thymeleaf.classpath.path-prefix`,
 | |
| 73 | * (2) `ogham.email.template.classpath.path-prefix`,
 | |
| 74 | * (3) `ogham.email.thymeleaf.path-prefix`,
 | |
| 75 | * (4) `ogham.email.template.path-prefix`,
 | |
| 76 | * (5) `ogham.template.path-prefix`,
 | |
| 77 | * (6) `spring.thymeleaf.prefix`
 | |
| 78 | */ | |
| 79 | // @formatter:on | |
| 80 | private String pathSuffix; | |
| 81 | ||
| 82 | public String getPathPrefix() { | |
| 83 |
2
1. getPathPrefix : replaced return value with "" for fr/sii/ogham/spring/common/PrefixSuffixProperties::getPathPrefix → SURVIVED 2. getPathPrefix : replaced return value with "" for fr/sii/ogham/spring/common/PrefixSuffixProperties::getPathPrefix → SURVIVED |
return pathPrefix; |
| 84 | } | |
| 85 | ||
| 86 | public void setPathPrefix(String pathPrefix) { | |
| 87 | this.pathPrefix = pathPrefix; | |
| 88 | } | |
| 89 | ||
| 90 | public String getPathSuffix() { | |
| 91 |
2
1. getPathSuffix : replaced return value with "" for fr/sii/ogham/spring/common/PrefixSuffixProperties::getPathSuffix → SURVIVED 2. getPathSuffix : replaced return value with "" for fr/sii/ogham/spring/common/PrefixSuffixProperties::getPathSuffix → SURVIVED |
return pathSuffix; |
| 92 | } | |
| 93 | ||
| 94 | public void setPathSuffix(String pathSuffix) { | |
| 95 | this.pathSuffix = pathSuffix; | |
| 96 | } | |
| 97 | ||
| 98 | } | |
Mutations | ||
| 83 |
1.1 2.2 |
|
| 91 |
1.1 2.2 |


Use Watson Speech To Text service to fill out this form!
To being recording, tap the icon.
You will start recording immediately!
To stop recording, close the popup box that will appear!
Your data will automatically upload to Watson! Be patient!
To upload a preexisting wav file, tap
To reset the recorder, tap
When recording, say these key words:


Life
问题描述 :
According to the report,Samuelwas alleged to have embezzled 104 million New Zua dollars ($3.15 million) in public funds, accepted bribes of about $9 million in a land purchase deal, and taken a kickback of $2.7 million from a construction project.

Now Samuel has a question for you:If you are given the legislations of Zua,can you tell how many years he stay in the prison?
The legislations of Zua are supposed as the following few lines:
输入:
输出:
样例输入:
2 3 011 10 5 15 5 01101 1 10 10 100 31
样例输出:
Samuel was accused with 2 case(s),and he will stay in the prison for 5 year(s). Samuel was accused with 3 case(s),and he will stay in the prison for 20 year(s).
65536K
8332
species of bugs. He assumes that they feature two different genders
and that they only interact with bugs of the opposite gender. In
his experiment, individual bugs and their interactions were easy to
identify, because numbers were printed on their
backs.
experiment supports his assumption of two genders with no
homosexual bugs or if it contains some bug interactions that
falsify it.
Each scenario starts with one line giving the number of bugs (at
least one, and up to 2000) and the number of interactions (up to
1000000) separated by a single space. In the following lines, each
interaction is given in the form of two distinct bug numbers
separated by a single space. Bugs are numbered consecutively
starting from one.
#i:”, where i is the number of the scenario starting at 1, followed
by one line saying either “No suspicious bugs found!” if the
experiment is consistent with his assumption about the bugs’ sexual
behavior, or “Suspicious bugs found!” if Professor Hopper’s
assumption is definitely wrong.
Input
Output
const
maxn=2000;
var
f,v:array[0..maxn]of longint;
t,i:longint;function find(x:longint):longint;
var
k:longint;
begin
if f[x]=x then exit(x);
k:=f[x];
f[x]:=find(f[x]);
v[x]:=(v[x]+v[k])and 1;
exit(f[x]);
end;procedure work;
var
n,m,i,j,k,x,y:longint;
begin
fillchar(f,sizeof(f),0);
fillchar(v,sizeof(v),0);
readln(n,m);
for i:=1 to n do
f[i]:=i;
for i:=1 to m do
begin
readln(x,y);
if find(x)=find(y) then
if (v[x]+v[y])and 1<>1 then
begin
writeln('Suspicious bugs found!');
for j:=i+1 to m do
readln;
exit;
end;
k:=v[x];
x:=f[x];
f[x]:=f[y];
v[x]:=((k+v[y])+1)and 1;
end;
writeln('No suspicious bugs found!');
end;begin
readln(t);
for i:=1 to t do
begin
writeln('Scenario #',i,':');
work;
writeln;
end;
end.
解题转自：http://blog.sina.com.cn/s/blog_a825ada90101picj.html
国企其实并不咋滴，我深有体会
国企其实并不咋滴，我深有体会
国企其实并不咋滴，我深有体会
国企其实并不咋滴，我深有体会
国企其实并不咋滴，我深有体会
国企其实并不咋滴，我深有体会
国企其实并不咋滴，我深有体会
居然看懂了
嗯 分析得很到位，确实用模板编程能让面试官对你的印象更好。在设置辅助栈的时候可以这样：push时，比较要push的elem和辅助栈的栈顶，elem<=min.top()，则min.push(elem).否则只要push（elem）就好。在pop的时候，比较stack.top()与min.top(),if(stack.top()<=min.top()),则{stack.pop();min.pop();}，否则{stack.pop();}.
修改一下吧 …
51行错了，改为：void Union(struct subset subsets[], int x, int y)
想问下computeLSPArray那里，if(len!=0) len=lps[len-1]是什么意思
第一段代码中：
next = next ;
明显不对吧，应该是 next =j;才对
赞！！~~大赞！！~
这一题的代码这样提交时错误的~少考虑了很多情况
原来如此 了解了
博主，你这个是wordpress哪个主题啊，不错哦~
学算法中的数据结构学到一定程度会乐此不疲的，比如其中的2－3树，类似的红黑树，我甚至可以自己写个逻辑文件系统结构来。
yeah, This is very tricky. If you use Cpp,you need more code
#include <stdio.h>
int main()
{
int n,p,t[100]={1};
for(int i=1;i<100;i++)
t =i;
while(scanf("%d",&n)&&n!=0){
if(n==1)
printf("Printing order for 1 pages:nSheet 1, front: Blank, 1n");
else {
if(n%4) p=n/4+1;
else p=n/4;
int q=4*p;
printf("Printing order for %d pages:n",n);
for(int i=0;i<p;i++){
printf("Sheet %d, front: ",i+1);
if(q>n) {printf("Blank, %dn",t[2*i+1]);}
else {printf("%d, %dn",q,t[2*i+1]);}
q–;//打印表前
printf("Sheet %d, back : ",i+1);
if(q>n) {printf("%d, Blankn",t[2*i+2]);}
else {printf("%d, %dn",t[2*i+2],q);}
q–;//打印表后
}
}
}
return 0;
}
隐藏最深的bug是(start+end)/2有可能上溢


Tributes paid to former Dudley councillor
Tributes have been paid to a former Dudley councillor who has died.
by Jamie BrassingtonRachel Harris, Alderman of Dudley, passed away at the weekend after a short illness.
She served as a councillor for 25 years before stepping down this year.
She last served the Brierley Hill ward, and before that represented Belle Vale and Hasbury, and Kingswinford South.
Alongside being an alderman - which is next in line to being a mayor - she was a cabinet member with a portfolio for procurement, transformation and commercialisation, as well as health and wellbeing.
Paying tribute, Dudley Council leader Patrick Harley said: "Our thoughts are with Rachel’s family and friends at this very sad time.
"Today we are grieving the loss of a colleague who brought great energy and passion to Dudley Council and I would like to personally pay tribute to Rachel and everything she gave to this borough."
Councillor Qadar Zada, Labour group leader at Dudley Council, said: "I worked very closely with Alderman Harris when she was a councillor, as we had a mutual concern for health inequalities, and I often found myself tapping into her wealth of knowledge and spent several hours debating health policy.
"There is much to say about Rachel’s many achievements over the years she served as a councillor, but I was particularly proud to have campaigned for her as Parliamentary Candidate in Dudley South in 2010.
"She was a community campaigner and public servant and retained her interest in issues affecting Dudley people after her retirement from the council and throughout her illness. It was for this dedication, beyond the call of duty, that I recommended that she be made an alderman.
"Everyone in the group will miss her and we are sad to have lost a friend. Our condolences go to husband Phil and her family."


The final stage of my project is way short of the design document, but I plan to continue working on it until it is complete. I have the basic foundation of a multiplayer game where players can join rooms with a 4 user capacity. Players can move with WASD and attack enemies by clicking. Each enemy that is defeated raises the score of each player in the room. Most calculations are done on the server side, while the client makes requests for the information to draw.
I spent a lot more time than I would have expected debugging numerous problems I encountered. I did not get the time to merge my final project with the MVC project since my final project uses websockets, and the MVC project does not. I also did not finish implementing a game over state, so the only way to play again is to refresh the page. I definitely overscoped the project given my skill level.
I really enjoyed using websockets. It was challenging to debug between the server and client code, but towards the end I had a much better understanding of how they communicate.
An online cooperative fantasy themed arena survival game where players take on roles in the "Order of Saints", defending mankind from an endless onslaught of demons that have been summoned into the world.
Players will create or join existing rooms that can be set to public or private to allow play with strangers and/or friends. Once in a room, players will choose from several playable characters with different abilities and combat styles. The host will select a map, that will be a single scrolling background image, and will have the power to start the game.
Once the game has launched, players will spawn together in the middle of the map, and waves of enemies will commence. Players will have to strategically use their abilities and work together to survive for as many rounds as they can. When a player dies they will have to wait to be revived, or leave the game. When all players have died they will be returned to the character selection screen.
Human sin has finally undone the world. Temptation has lead to the summoning of demons under the false pretense that they could be controlled for fulfilling human desire. Pride, envy, greed, lust wrath, gluttony, sloth...one order has renounced all of these traits and resisted temptation. They are The Order of Saints, and they have been blessed with the power to repel the demon's onslaught and redeem humanity. They are the only hope, the last line of defense.
Sprite sheets for character movement and attacks, and background images for setting. If time permits they will be created, if not they will temporarily filled in from somewhere like opengameart.org
The first goal will be to have one playable character that all players will use with one power, one map, and one enemy type. Basic functionality will be the priority before implementing things like private vs public room creation.


My Team
Kashay Arbelo
Manager
Employee ID: 1
Email:
<EMAIL_ADDRESS>Office Number: 1
Dan Arbelo
Engineer
Employee ID: 2
Email:
<EMAIL_ADDRESS>GitHub Username:
Govepitr
Harrison Arbelo
Intern
Employee ID: 3
Email:
<EMAIL_ADDRESS>School: 2nd Grade
Niko Arbelo
Intern
Employee ID: 4
Email:
<EMAIL_ADDRESS>School: Luxery Dog's Life
Linux Arbelo
Intern
Employee ID: 5
Email:
<EMAIL_ADDRESS>School: Luxery Dog's Life
Kashay Arbelo
Engineer
Employee ID: 6
Email:
<EMAIL_ADDRESS>GitHub Username:
KashCodes


Crystal 0.15.0 has been released!
This is a small release where the most significant change is that now !
and nil?
have their meaning hardcoded in the language. To understand why this is important let’s look at a simple example.
nil? and !
The task is to write a program that prints the character number of an occurrence of a string inside another string, or print “Not found” if not found.
One way to solve this is:
Note that in the above program the first character, for the user, is 1, the second is 2, etc. That’s why we need to add 1 to the index.
The compiler understands that if index
is truthy (not nil
nor false
nor a null pointer)
then inside the then
branch index
can only be Int32
so the operation index + 1
compiles fine.
Another way to write the same program is this:
If you compile the above program in a previous version you will get an error:
Error in ./file.cr:14: undefined method '+' for Nil (compile-time type is Int32?) puts "Found at character number #{index + 1}" ^
In this case it would seem obvious that in the else
branch there’s no possible
way index
can be nil
. However, because !
was a regular method and anyone could
redefine its meaning, the compiler couldn’t make this guarantee.
Now !
has its meaning hardcoded, which means that the last program compiles just fine.
Yet another way to write the same program is this:
As before, if you compile this with a previous version you will get the same error,
for the same reason: you could redefine the meaning of nil?
.
Starting from 0.15.0 nil?
has its meaning hardcoded, so the above program again works
just fine.
This is super important because now the language is much more intuitive and correct.
And there are many Ruby programmers that use nil?
, a lot, and if they start using
Crystal there won’t be any surprises in their expectations about what the compiler should
understand in these cases.
Some others ways to write this program:
All of the above will now work just fine, as one would expect.
We originally considered removing nil?
from the standard library and language, but Nil
is such a fundamental type that it makes sense to have good support for handling it.
And remember: nil
is not a billion dollar mistake
if the compiler takes care of making sure you always handle it.
Better Playground
The playground (crystal play
)
had many bug fixes, stablizations and improvements. For example runtime exceptions are now pointed
out in the source code.
There’s also a new “Workbook” tab/section that can list files you put in a playground
directory,
to use it as a tutorial for others, or maybe when giving a talk. These files can be HTML,
Markdown or Crystal files.
For example, @will gave a talk about Crystal a few days ago at Ruby on Ales and used it to introduce the language. Make sure to check out his repo and try it out.


" The Blair Witch Project " * * * 1/2
If youıve been paying attention to the media frenzy that is THE BLAIR WITCH PROJECT, and who hasnıt, you know the story and you know itıs pure dramatization. Needless to say, though, watching what has been committed to tape, one gets the undeniable impression the events are veritable: three students take hand- helds into the woods, filming a school project about the myth of a local witch, and get lost. No biggie, as the put-upon leader of their crew, Heather, states rationally, "Itıs hard to get lost in America, and itıs harder to stay lost." What starts out fun and games, so to speak, amongst friends (correct "Gilliganıs Island" vernacular; Heatherıs mishap with a pair of wet shoes) quickly becomes something more serious. Rations dwindle, their only map disappears, and camaraderie gradually disintegrates into bickering, nicotine jonesing and total disorientation. They set up camp, several times too often, and wake up to vague but ominous noises just in the distance. And, thatıs the ingenious thing of the film: the heard, yet unseen, proves to be a lot more terrifying. Because, try as you may to put whatıs going on into perspective (twigs snap.. probably a small animal), you still donıt know for certain. And, because there is little light for assistance, you can either stay in one place very quietly and pray, or make a run for it in the pitch black and take your chances. During Heatherıs emotionally-draining private confessional for the camera, she sums this experience up quite nicely: "Iım afraid to close my eyes, and Iım afraid to open them."
Whatıs also great about the film is its budget. The point of view footage is antsy, because the actors get antsy and donıt know exactly where to look or where theyıre going in the heat of apparent pursuit. I think BLAIR WITCH will play even better on the small screen, because of its aspect ratio and the likelihood of a more quiet environment; occasionally, I was unable to hear what the actors were hearing due to an audience loud with throat- clearing and squeaky seats, and it bugged me immensely.
There is no special effects work, no computer-generated anything, and mostly no gory close-ups (save for a set of teeth), which gives the film a great deal of authenticity. And, what I like most is the eerie conclusion; that last scene, in an abandoned, dilapidated house, is nerve-wracking and more than a little disturbing. The collective opinion circulating the net at present is that this scene is too quick, and the film ends rather abruptly. Which is true, but thatıs the point. It is Heatherıs fear and despondence, come to the breaking point. After being in the woods for so long, and not knowing what would ultimately happen to them at any given moment whether she, or her friends, would make it she and Mike arrive at one last spot, maze-like and frustrating, and in an instant itıs all over. You leave with questions, and want to talk about what youıve just witnessed with as many people as you can get it in a room. Movies that can put you there have done their job; real, or fake (forget the whole is-it-a-sham-or-not business, already). That final image you know the one is cryptic and haunting.
I wanted more scenes at night, with not _clearer_ sounds, but I donıt know, more of them. Even greater a building of exhaustion and fear. The film does not quite go the psychological distance, but itıs close. Also, the arguing goes on a little much for my taste (one fight, over the whereabouts of the map, turns especially shrill), though such carrying-on is understand- able, circumstances considered.
"Scary as hell" no. Creepy, yes. Effective, brilliantly- conceived and executed, and performed with all the conviction in the world so that even if we doubt what weıre seeing is real, suspension of disbelief is never an issue: _oh yeah_.
Best line: 90% improv equals no cleverly constructed dialogue; I like the reaction Heather has to a shot of scotch (I hate it, too).
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Head Prefect Tushku:
Welcome to the Heine, the city of water... Eh, the truth is that Orcs like me just can't get used to a city like this, with its white and shiny buildings and candy-stinking Elves. I feel like firecracker thrown into a pond.
But duty calls, and we do what must be done... So, why are you looking for me?
Listen to information about second class transfer.
Sub Class.
Clan.
Alliance.
Quest.


MY DINNER WITH ANDRE is one of the greatest movies of all time because it works on a seemingly infinite number of levels. Yet at the same time it is one of the biggest failures in film because it only succeeds in connecting to the most insightful of its audience. The resulting paradox only serves to prove the film's lesson to be true. Brilliant!
This is either a movie you will turn off after fifteen minutes, or it is a movie you will watch over and over again to pick up all the things you missed in previous screenings. The former will be bored and lost by the endless, meaningless talk. The latter will find gold in every word, and veins left to be mined time after time.
In simple terms, the question is understood "If life is a stage, are you going to be an actor, a director, or a playwright?" It is the viewer's choice. Wally is a struggling playwright who has fallen back on acting. Andre is a former actor and director who has left the theatre entirely. Wally and Andre meet for dinner, and Andre recounts his experiences since leaving the theatre.
But one of the many ironies is that their dinner itself is theatre, and both Andre and Wally have roles to fill. [Notice they wrote the script and use their real names. They are not playing characters. They are necessarily playing themselves.] And summarily the viewer also has a role to fill. If life is a stage, viewing the theatre is in itself theatre. The viewer is now in a place of filling a role, and the question is will it be done mechanically or deliberately? Mechanically is to be put there by script, or director, or instinct. It is done without thought or personal intention. Mechanics is acting. Deliberation is with personal intention and therefore choice. Deliberation is thought. Deliberation is playwrighting.
This is a brilliant, brilliant film. One of the greatest movies of all time. And its resolve is purely subjective to the individual viewer. The goal is for viewers to deliberate and come away enlightened (literally). Unfortunately the majority of viewers will act mechanically and turn it off.
-- Kevin Walker /IL --<EMAIL_ADDRESS>(-NOSPAM) **************************************** * "Qui me amat, amat et canem meum." * * ("He who loves me, loves my dog.") * * -- St. Bernard of Clairvaux * ****************************************
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Dynamic Drop Down List from JSON
Create a dynamic dropdown form that loads its data from a JSON file.
Callback: -
Normal Select Control
Custom Select Control
@@include('./src/components/ES6/_global/include-header.html')
@@include('./src/components/ES6/_global/include-loader.html') @@include('./src/components/ES6/_global/include-toggle-trigger.html')Create a dynamic dropdown form that loads its data from a JSON file.
Callback: -
Normal Select Control
Custom Select Control


Strong 7.1-magnitude earthquake hits off Indonesia
JAKARTA: A strong 7.1-magnitude earthquake hit off the coast of North Maluku province in eastern Indonesia early on Friday (Nov 15), seismologists said, with the US tsunami warning centre saying a tsunami was not expected.
The quake hit 140 kilometres northwest of the coastal town of Ternate at a depth of 45 kilometres, according to the US Geological Survey.
The US tsunami warning centre said a "destructive Pacific-wide tsunami is not expected."
The Indonesian meterological and climatology agency, however, warned people to stay clear of beaches as a precaution.
The quake was felt strongly in Ternate at 1.17 am local time (1617 GMT), sending sleeping residents fleeing their houses.
Indonesia experiences frequent seismic and volcanic activity due to its position on the Pacific "Ring of Fire", where tectonic plates collide.
Last September, a 7.5-magnitude quake and a subsequent tsunami in Palu on Sulawesi island killed more than 2,200, with 1,000 more declared missing.
On Dec 26, 2004, a 9.1-magnitude earthquake struck Aceh province, causing a tsunami and killing more than 170,000 in Indonesia.


|
The Inspector
0.2
Flagship Product of ACME Robotics
|
Class PathPlanningModule. More...
#include <PathPlanningModule.h>
Public Member Functions | |
| PathPlanningModule () | |
| Constructor of class. More... | |
| ~PathPlanningModule () | |
| Destructor of class. More... | |
| void | currentLocation (int loopOnce) |
| finds the current location of the turtlebot More... | |
| void | moveToAngle (double) |
| Moves the turtlebot at a desired angle. More... | |
| double | getCurrentAngle (int loopOnce) |
| Returns current angle of robot. More... | |
| void | navigate () |
| navigates to the set next goals More... | |
| void | setGoal (double, double) |
| sets the coordinates of the goal to be reached More... | |
| double | getX () |
| gets current X coordinate of robot More... | |
| double | getY () |
| gets current Y coordinate of robot More... | |
| double | getNextX () |
| gets X coordinate of goal More... | |
| double | getNextY () |
| gets Y coordinate of goal More... | |
| bool | getExceptionHandled () |
| gets the value of exceptionHandled_ More... | |
| bool | getAngleExceptionHandled () |
| gets the value ofangleExceptionHandled_ More... | |
Class PathPlanningModule.
Definition at line 54 of file PathPlanningModule.h.
| PathPlanningModule::PathPlanningModule | ( | ) |
Constructor of class.
publisher for velocity commands to turtlebot
setting variables to initial values
Definition at line 55 of file PathPlanningModule.cpp.
| PathPlanningModule::~PathPlanningModule | ( | ) |
Destructor of class.
Definition at line 69 of file PathPlanningModule.cpp.
| void PathPlanningModule::currentLocation | ( | int | loopOnce | ) |
finds the current location of the turtlebot
| loopOnce | 1 function exits on catch immediately 0 function listens to transform till no exception is thrown |
read the odometry data and find current robot location
get the base_link to odom transform and print any exceptions
Definition at line 72 of file PathPlanningModule.cpp.
| bool PathPlanningModule::getAngleExceptionHandled | ( | ) |
gets the value ofangleExceptionHandled_
Definition at line 99 of file PathPlanningModule.cpp.
| double PathPlanningModule::getCurrentAngle | ( | int | loopOnce | ) |
Returns current angle of robot.
| loopOnce | 1 function exits on catch immediately 0 function listens to transform till no exception is thrown |
get the base_link to odom transform and print any exceptions
Definition at line 214 of file PathPlanningModule.cpp.
| bool PathPlanningModule::getExceptionHandled | ( | ) |
gets the value of exceptionHandled_
Definition at line 95 of file PathPlanningModule.cpp.
| double PathPlanningModule::getNextX | ( | ) |
gets X coordinate of goal
Definition at line 206 of file PathPlanningModule.cpp.
| double PathPlanningModule::getNextY | ( | ) |
gets Y coordinate of goal
Definition at line 210 of file PathPlanningModule.cpp.
| double PathPlanningModule::getX | ( | ) |
gets current X coordinate of robot
Definition at line 198 of file PathPlanningModule.cpp.
| double PathPlanningModule::getY | ( | ) |
gets current Y coordinate of robot
Definition at line 202 of file PathPlanningModule.cpp.
| void PathPlanningModule::moveToAngle | ( | double | angle | ) |
Moves the turtlebot at a desired angle.
| desired | angle as input parameter |
get the base_link to odom transform and print any exceptions
Definition at line 103 of file PathPlanningModule.cpp.
| void PathPlanningModule::navigate | ( | ) |
navigates to the set next goals
Navigate to x-coordinate
navigate to y-coordinate
Definition at line 137 of file PathPlanningModule.cpp.
| void PathPlanningModule::setGoal | ( | double | x, |
| double | y | ||
| ) |
sets the coordinates of the goal to be reached
| X | coordinate position of goal |
| Y | coordinate position of goal |
Definition at line 236 of file PathPlanningModule.cpp.


Arsenal board's 'four points of consideration' before making Unai Emery sack decision
Unai Emery took over from Arsene Wenger in 2018, and was tasked with returning Arsenal to the Champions League
by Jake Polden, https://www.mirror.co.uk/authors/jake-polden/The Arsenal board has extracted four positives from Unai Emery's time in charge, which could save him from the sack, according to reports.
Emery took over from Arsene Wenger after 22 years in 2018, and was tasked with returning the Gunners to the Champions League.
The Spaniard failed in his task in his first full season, as the Gunners finished just outside the top four places in fifth and were beaten in the Europa League final by Chelsea.
This season things appear to have regressed slightly under Emery, with Arsenal winning just two of their past nine fixtures in the Premier League.
Emery is under pressure to turn things around and other managers, including Jose Mourinho, have been linked with his job in recent weeks.
The Gunners board is in no rush to sack the Spaniard, and according to the Evening Standard, have taken four things into consideration.
Firstly, Arsenal do not want to become a 'hire and fire' club like Manchester United and Chelsea, and would rather back their current boss.
Secondly, Emery impressed by reaching the final of the Europa League in his first season, despite Arsenal not coming away with the result they wanted.
Thirdly, Emery has done a good job integrating the young players at the club, and is getting the best out of Matteo Guendouzi, Bukayo Saka and Gabriel Martinelli.
And finally, the Spaniard appears to have found a way of getting Pierre-Eemerick Aubameyang firing on all cylinders.
All of these things appear to be going in Emery's favour at the moment, with the board acknowledging these positives and viewing them as progess.


Before Change
// it"s possible to callback a different model than itself
// (used by Sequential models)
if hasattr(model, "callback_model") and model.callback_model:
callback_model = model.callback_model
else:
callback_model = model
callbacks.set_model(callback_model)
callbacks.set_params({
"batch_size": batch_size,
"epochs": epochs,
After Change
epoch_logs = {}
if steps_per_epoch is not None:
for step_index in range(steps_per_epoch):
batch_logs = {"batch": step_index, "size": 1}
callbacks._call_batch_hook("train", "begin", step_index, batch_logs)
outs = fit_function(fit_inputs)
outs = to_list(outs)


HOLLOW MAN (2000)
Grade: C-
Director: Paul Verhoeven
Screenplay: Andrew W. Marlowe, Gary Scott Thompson
Starring: Kevin Bacon, Elizabeth Shue, Josh Brolin, William Devane, Greg Grunberg, Joey Slotnick, Mary Jo Randle, Steve Altes, Rhona Mitra
Paul Verhoeven, the Dutch auteur who dragged his violent, sexually aggressive aesthetic into American film, has never been what I'd consider a thoughtful director (though some of his films, notably STARSHIP TROOPERS, have been lauded as artistic achievements), but he is the kind of Hollywood film maker who's managed to, no matter what the budget, make his films distinctive and even sometimes smuggle stimulating themes into the lavish high concepts on which he toils. STARSHIP TROOPERS was essentially a B-monster movie remake of his enthralling Dutch War film SOLDIER OF ORANGE (a great film that's nearly impossible to find on video, yet SHOWGIRLS is everywhere), in which he cast a troop of stunningly attractive mannequins; the square jawed Casper Van Dien and Denise Richards (who may actually be 45% silicone), in what feels like an American propaganda picture set to monotonous scenes of graphic carnage. It's not a completely successful film, but as a failure it's certainly an interesting (and mostly entertaining) one.
My favorite Verhoeven films were the ones he made before he hit our shores; SPETTERS, a dark near pornographic coming of age film set within the sub-culture of drag racing and the aforementioned SOLDIER OF ORANGE (haven't yet gotten around to seeing THE 4th MAN or TURKISH DELIGHT). I believe his best Hollywood film to be ROBOCOP, a bleak super-hero satire with a robotic hero that's as touching as Schwarzenegger's in T2. That movie was violent but not in the overdone cartoonish manner of more recent Verhoeven pics. Its violence seemed to be there for a purpose, namely to create an atmosphere of unpredictable dread, not to simply titillate an attention deprived audience. There's a jaw-dropping scene within the first ten minutes of ROBOCOP wherein the lead villain toys with a cop before snuffing him. He tortures the officer by taking glee in his victim's every fearful tic. It's a startling moment of barbaric, maddening violence that effectively sets the tone for the film that could be designated as splatter punk-noir.
 But why? His character is introduced as a smug genius, the kind who's always impeccably dressed and races a sports car while generic rock tunes blare from his stereo for the world to hear, sort of like a scheming uber villain from DALLAS or MELROSE PLACE, though once the character becomes invisible, this film has him pull a 180 shift into a psychotic movie monster.  HOLLOW MAN's protagonists are the completely bland but beautiful scientist Linda (Elizabeth Shue, acting as if she were Rebecca of Sunnybrook Farm) and her lover, a hunk of beef scientist played by Josh Brolin who's saddled with the film's worst lines ("I've lost cohesion again!"). They're a typical Aaron Spelling couple, good-looking but as vacant as George W. Bush's Republican National Convention speech (i.e. Bush referring to Clinton; "…so much promise…but to what end? To what end?"-- this actually got applause! Suddenly Warren Beatty doesn't look so absurd). The rest of the film's characters are all well past thirty, though act like annoying high school party animals insulting one and other with a series of strained one-liners; Is it just me or have labored insults become Big Budget Hollywood's new character developing technique? Ahh, what a cynical time we live in…
As the picture opens we meet Cain (Kevin Bacon), an egocentric scientist working with the crew of aforementioned irritating scientists on a Top Secret (so Top Secret the government has only provided them with a dilapidated warehouse in which to perform their extensive experimentation's) project with the goal to make invisibility a possibility (for what purpose is never hinted at). They've performed several experiments on animals and have nearly solved the quandary causing Caine, in a twist worthy of the film's 1950's Late Show origins, to impulsively experiment on himself. Caine neglects to let the Pentagon in on his plans and somehow gets two of his co-workers to lie for him so the rest of the crew will think the Pentagon gave the go ahead.
It grows abundantly clear with each new release that it's Verhoeven's films that have become hollow. Like the rest, this one is cold, heartless, and full of contempt for humanity, but in addition to all that it lacks any trace of wit, insight and makes no statement other than "audiences will pay for anything these days".  Verhoeven has instead served up an utterly routine mad slasher flick with nobody to root for and no reason to care.
The previews make HOLLOW MAN look like an irresistible flick. How can one not have a good time at a film that utilizes state of the art FX to illustrate an invisible man getting down and dirty with his bad self? A couple weeks ago, after seeing the trailer, a bunch of friends and I got into a long discussion of how invisible man flicks never go so far as to have the invisible individual indulging in their newfound ability. HOLLOW MAN looked like the first film to do so and whoa, in a serious manner to boot. But oh yeah, it is directed by Paul Verhoven not Atom Egoyan or Peter Greenway. Verhoeven delivers the sleazy "goods", but not in a watchable or thrillingly disturbing manner, here it just feels icky and uncomfortable. The director keeps his camera trained at his nubile actresses, caressing their breasts with his lens all while faux-PSYCHO music strains in the background. It's plainly obvious that Verhoeven isn't exploring voyeurism (like in the classic PEEPING TOM) but exploiting it and not even doing that very well.  Most vexing is that the invisibility aspect is used simply as gimmick in yet another slasher movie wherein characters do stupid things just so the villain can pop up for more attacks. In fact it's largely irrelevant that Bacon is invisible since, by the end, most of his potential victims don infer-red glasses that track his body heat. As in every Mad Slasher film we get the killers POV (a scene where he spies on his neighbor while she undresses triggered unpleasant memories of SLUMBER PARTY MASSACRE), and lots of scenes where people are unknowingly stalked.
The film only provides one moment that I found genuinely creepy. It happens when a lab assistant (Kim Dickens, who looks like she stepped out of Playboy) in the middle of a chit chat with an invisible Bacon, suddenly pauses. "Are you looking at me?", she queries, obviously haunted. It's a little moment in a big film with nothing to offer but ground breaking special effects set to a plot that should have run its course by 1982 (the apex of the Mad Slasher craze).  And they're the only reason to check out HOLLOW MAN, preferably as a mid-week bargain rental. You've been warned. But you probably won't listen, will you? Tis' a pity…
http://www.geocities.com/incongruity98 Reeling (Ron Small)
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Google search will now give you feedback on your pronunciation
Speak into the microphone to be schooled by Google
by James VincentGoogle search is launching a new feature that will let users check their pronunciation of unfamiliar words with the help of machine learning.
When searching for a pronunciation guide, a user will be able to speak into their microphone, and Google will use AI to analyze how they pronounce the word. They’ll then receive feedback on how each syllable matches Google’s expected pronunciation.
“For example, if you’re practicing how to say “asterisk,” the speech recognition technology analyzes how you said the word and then, it recognizes that the last soundbite was pronounced ‘rict’ instead of ‘uhsk,’” Google says. “Based on this, you will receive feedback on how you can improve next time.”
The feature launches today, but Google says it’s “experimental” and only available on mobile to begin. The new guides also only work for American English words, though Google says Spanish pronunciations are “soon to follow.”
Google is also improving its word translations and definitions with visual prompts. So if you’re trying to translate “naranja” from Spanish to English, for example, you’ll also see pictures of oranges along with the translated word. If you’re looking up the meaning of the word “seal,” you’ll be shown pictures of mechanical seals, embossed pieces of wax, and the semiaquatic marine mammal. No confusion there.
Google says these picture translations will only work initially in English and for the most easily visualized type of word: nouns. But it plans to expand the coverage in the future.
Both features sound like useful additions to Google’s already impressive linguistic skillset, turning its simple search function into a more well-rounded language coach. With machine learning and the data Google will presumably get from people using this feature, it’ll likely only improve.


It seems great
Write code once use it many times. Creating smaller pieces of code forces developers to write encapsulated software that follows single responsibility principle and is easy to test. Such code piece (AKA module) can be then published as a versioned artifact - a private library, that can be reused in more than one project. We are getting quality and reusability, how cool is that! Well that’s the theory. I’d like to share fictional story (that could be real) when modularization went wrong and some ideas how to avoid that.
But why?
So some say it’s good to create libraries, but why exactly?
If you are (like me) an Android developer it’s highly probable you’ve handled input fields, like email, password, IP address etc. Handling such fields usually means creating some helper
class to verify if typed text is in correct form. Yes, there are libs for that, but checking input fields may be very usecase specific - I remember checking if typed IP address is available in local network or outside of it. For me it was faster to create and unit test my own solution than look for library providing such validator. After a while there were few helpers
like that, and new project appeared were they could be used. So what now, copy and paste code from one project to another? Hell no. I’ve created library for internal usage that I’ve shared between both projects.
Story time
Disclaimer: This is pure fictional story, based on my own experience and other developer stories I’ve heard, oversimplified and overcolorized
Now imagine complex user flow shared between projects, like login or registration to cloud service. Basically it’s few screens with inputs, some HTTP requests, maybe data persistence. On the end you want to know if user is properly logged in and get auth data for future HTTP requests. If the flow itself is not that straightforward, has some weird branches only business seems to understand, it appears really worthy to write it once and use in upcoming project that will share this functionality.
Here fun begins
But what to put into this login module? It needs to talk with cloud, so maybe HTTP client should be added. User email should be saved so some simple key-value persistence will come handy. Layouts, fragments, presenters and whole navigation - after all we just need to get logged user data from this module. Library is using other shared modules like Commons Library
from first example, also some custom views like input fields with fancy error showing. Library API was made in fancy at the time RxJava 1. Everything versioned and kept on internal artifact server (like JFrog Artifactory), ready to use in future projects. Business assured that nothing will change in user login flow so developers were sure they are making good decision cuppling it all together.
More fun
The second project is launched some time after development of Login Library
was finished and it has been released with first project. New project is also developed by other team than first. There is the same requirement of logging to cloud service in new project, so developers decided to use Login Library
from first project. But how to use it if there is no README
or example in library repository? Just check the first project… Second project business requirement was to have all persisted data encoded but Login Library
was using internaly simple key-value storage without any encoding possibilities. It can be easly fixed since it’s internal project.
Second project team updated Login Library
so it can go along with various business requirements (for faster development they’ve used local Maven library), and created pull request with changes, original authors of library were added as rewievers. But the reviewers were busy with their own project so it took them a week to check the PR, it got accepted, new version of library was released and used in second project.
Then business has great idea to change look of login screens in second app to be more up to date. Developers added injecting styles to library, but they broke backwards compatibility during the process. Another change in Login Library
, another pull request, another week.
Meanwhile developers of first project have found a bug in Login Library
, they created fix and wanted to release it fast… but now they need to change their application because of changes made by second team, or fork it and begin linux-distro-like hell.
And now business has another great idea to change flow for second project only…
Please stahp
You see where I’m going with it? And list of potential problems can be easily extended: second project uses RxJava2, HTTP client headers may be different for each project, analytics of login flow should be separate for each project, diferent ideas how to maintain library, etc.
At the end creating such shared module didn’t solve any problems, but generated new ones. It didn’t speed up development but made it slower and annoying, possibly creating useless tension between teams and people.
Too much love will kill you
Somehow this song fits to above story: great idea of sharing code, so much passion in developing library module that would solve so many problems, team cooperation… so much love.  But it doesn’t have to, here is how:
- Never believe when business tells you “we won’t be changing that”
- Each shared module should have an owner, person who knows why and how it works and decides about direction of module development.  Shared ownership means shared responsibility - will work as great as communism.
- Creating shared library is no different from adding new internal service or class and the same rules apply.
- reduce outside dependencies
- consciously design your API
- think about various configuration variants rather than current use cases
- shared code is to be used by application so don’t force clients of your lib to change application architecture just to use it
- SOLID, DRY bla bla bla…
- Think few times do you really need to create shared library, talk with other teams what they think about it. Something that seems a great idea at first may be overkill or not be used at all on the end. Sometimes well designed module or even package in monolith app is good enough, and can be moved to library when the need comes.
- Create README, and make it a good one. Examples, explanations, generated documentation. You will thank me later.
- Create example application that uses your shared code, so going through old projects won’t be necessary to understand it.
- Always add tests (unit, functional) in your library
- CI/CD will make your life easer
So for my example with Login Library
:
- Putting views and whole navigation is asking for problems: UI will change for different reasons than business logic and each change has to be released as new version of library and updated dependency in app, it may also limit navigation control and changing user flows.
- Putting HTTP client and persistence directly into library is easy, but also may cause problems. Such dependencies should be injected by application that uses library.
- External dependency used for library public API is risky, it’s probably better idea to keep it bare bones and then add
reactive extensions
. - Select owner - faster pull requests and better overall library maintenance.
- Add README, code examples, documentation.
Final thought
It’s good to learn from yor own mistakes, but engineers should mostly learn from mistakes made by others. If you rush into creating libraries without learning a lesson from other developers errors - you will surely recreate some of them. And those errors cost a lot of time, frustration and useless work.
If you are working with a lot of short term projects, you’ll probably need only something like commons library
or not even that. For bigger/longer projects creating library should be conscious decision made by mature developers creating balanced teams. Each internal library requires time for setup and maintenance, and even more if you decide to publish it as open source.
There are other ways to share code between projects, like monorepo
or git subtree
, but they cause other problems. As they say in IBM - THINK and select best solution for your case.


QUEST FOR CAMELOT Reviewed by Jamie Peck
The story revolves around the adventures of free-spirited Kayley (voiced by Jessalyn Gilsig), the early-teen daughter of a belated knight from King Arthur's Round Table. Kayley's only dream is to follow in her father's footsteps, and she gets her chance when evil warlord Ruber (Gary Oldman), an ex-Round Table member-gone-bad, steals Arthur's magical sword Excalibur and accidentally loses it in a dangerous, booby-trapped forest. With the help of hunky, blind timberland-dweller Garrett (Carey Elwes) and a two-headed dragon (Eric Idle and Don Rickles) that's always arguing with itself, Kayley just might be able to break the medieval sexist mold and prove her worth as a fighter on Arthur's side.
"Quest for Camelot" is missing pure showmanship, an essential element if it's ever expected to climb to the high ranks of Disney. There's nothing here that differentiates "Quest" from something you'd see on any given Saturday morning cartoon -- subpar animation, instantly forgettable songs, poorly-integrated computerized footage. (Compare Kayley and Garrett's run-in with the angry ogre to Herc's battle with the Hydra. I rest my case.) Even the characters stink -- none of them are remotely interesting, so much that the film becomes a race to see which one can out-bland the others. In the end, it's a tie -- they all win. That dragon's comedy shtick is awfully cloying, but at least it shows signs of a pulse.
At least fans of the early-'90s TGIF television line-up will be thrilled to find Jaleel "Urkel" White and Bronson "Balki" Pinchot sharing the same footage.  But one must strain through too much of this mess to find the good. Aside from the fact that children will probably be as bored watching this as adults, "Quest for Camelot"'s most grievous error is its complete lack of personality. And personality, we learn from this mess, goes a very long way.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


ndmg.preproc package¶
Submodules¶
ndmg.preproc.preproc_func module¶
-
class
ndmg.preproc.preproc_func.
preproc_func
¶ -
motion_correct
(mri, corrected_mri, idx=None)¶ Performs motion correction of a stack of 3D images.
- Positional Arguments:
- mri (String):
- -the 4d (fMRI) image volume as a nifti file.
- corrected_mri (String):
- the corrected and aligned fMRI image volume.
- idx:
- the index to use as a reference for self alignment. Uses the meanvolume if not specified
-
preprocess
(func, preproc_func, motion_func, outdir, stc=None, qcdir='', scanid='')¶ A function to preprocess a stack of 3D images.
Positional Arguments:
- mri:
- the 4d (fMRI) image volume as a nifti file (String).
- motion_mri:
- the 4d (fMRI) image volume that is motion aligned (String).
- preproc_mri:
- the 4d (fMRI) preprocessed image volume
as a nifti image (String).
- stc:
- the slice timing correction information. See documentation for slice_time_correct() for details.
- mri_name:
- the name to append before all paths for file naming.
- outdir:
- the location to place outputs (String).
- qcdir:
- optional argument required for quality control output
directory (String).
- scanid:
- optional argument required for quality control, is the id
of the subject (String).
-
slice_time_correct
(func, corrected_func, stc=None)¶ Performs slice timing correction of a stack of 3D images.
- Positional Arguments:
- mri (String):
- -the 4d (fMRI) image volume as a nifti file.
- corrected_mri (String):
- the corrected and aligned fMRI image volume.
- stc: the slice timing correction options, a string
- corresponding to the acquisition sequence. Options are “/path/to/file”, “down”, “up”, “interleaved”. If a file is passed, each line should correspond to a single value (in TRs) of the shift of each slice. For example, if the first slice has no shift, the first line in the text file would be “0.5”. If not None, make sure the “zooms” property is set in your data (nb.load(mri).header.get_zooms()), otherwise this function will throw an error.
-
ndmg.preproc.rescale_bvec module¶
-
ndmg.preproc.rescale_bvec.
rescale_bvec
(bvec, bvec_new)¶ Normalizes b-vectors to be of unit length for the non-zero b-values. If the b-value is 0, the vector is untouched.
- Positional Arguments:
- bvec:
- File name of the original b-vectors file
- bvec_new:
- File name of the new (normalized) b-vectors file. Must have extension .bvec


|
C++ High Level Types
This library provides commonly used high level types and methods for easier and better coding.
|
Provides versioning functionality. More...
#include <hversion.h>
Public Member Functions | |
| Version () | |
| Basic constructor. | |
| Version (unsigned int major, unsigned int minor=0, unsigned int revision=0, unsigned int build=0) | |
| Constructor. More... | |
| Version (Array< unsigned int > versions) | |
| Constructor. More... | |
| Version (const String &versions) | |
| Constructor. More... | |
| ~Version () | |
| Destructor. | |
| bool | isValid () const |
| Checks validity of version. More... | |
| void | set (unsigned int major, unsigned int minor=0, unsigned int revision=0, unsigned int build=0) |
| Sets the version values. More... | |
| void | set (Array< unsigned int > versions) |
| Sets the version values. More... | |
| void | set (const String &versions) |
| Sets the version values. More... | |
| String | toString (int count=3) const |
| Creates a String representation of the Version. More... | |
| bool | operator> (const Version &other) const |
| Checks if this Version is greater than another Version. More... | |
| bool | operator< (const Version &other) const |
| Checks if this Version is less than another Version. More... | |
| bool | operator>= (const Version &other) const |
| Checks if this Version is greater than or equal to another Version. More... | |
| bool | operator<= (const Version &other) const |
| Checks if this Version is less than or equal to another Version. More... | |
| bool | operator== (const Version &other) const |
| Checks if this Version equals another Version. More... | |
| bool | operator!= (const Version &other) const |
| Checks if this Version non-equals another Version. More... | |
Static Public Member Functions | |
| static bool | isVersionString (const String &string) |
| Checks if the string is a valid version string. More... | |
Public Attributes | |
| unsigned int | major |
| Major version. | |
| unsigned int | minor |
| Minor version. | |
| unsigned int | revision |
| Revision number. | |
| unsigned int | build |
| Build number. | |
Provides versioning functionality.
| hltypes::Version::Version | ( | unsigned int | major, |
| unsigned int | minor = 0 , |
||
| unsigned int | revision = 0 , |
||
| unsigned int | build = 0 |
||
| ) |
Constructor.
| [in] | major | Major version. |
| [in] | minor | Minor version. |
| [in] | revision | Revision number. |
| [in] | build | Build number. |
| hltypes::Version::Version | ( | Array< unsigned int > | versions | ) |
Constructor.
| [in] | versions | Array of versions. |
| hltypes::Version::Version | ( | const String & | versions | ) |
Constructor.
| [in] | versions | Version numbers separated by period characters. |
| bool hltypes::Version::isValid | ( | ) | const |
Checks validity of version.
|
static |
Checks if the string is a valid version string.
| [in] | string | The String to check. |
| bool hltypes::Version::operator!= | ( | const Version & | other | ) | const |
| bool hltypes::Version::operator< | ( | const Version & | other | ) | const |
| bool hltypes::Version::operator<= | ( | const Version & | other | ) | const |
| bool hltypes::Version::operator== | ( | const Version & | other | ) | const |
| bool hltypes::Version::operator> | ( | const Version & | other | ) | const |
| bool hltypes::Version::operator>= | ( | const Version & | other | ) | const |
| void hltypes::Version::set | ( | unsigned int | major, |
| unsigned int | minor = 0 , |
||
| unsigned int | revision = 0 , |
||
| unsigned int | build = 0 |
||
| ) |
Sets the version values.
| [in] | major | Major version. |
| [in] | minor | Minor version. |
| [in] | revision | Revision number. |
| [in] | build | Build number. |
| void hltypes::Version::set | ( | Array< unsigned int > | versions | ) |
Sets the version values.
| [in] | versions | Array of versions. |
| void hltypes::Version::set | ( | const String & | versions | ) |
Sets the version values.
| [in] | versions | Version numbers separated by period characters. |
| String hltypes::Version::toString | ( | int | count = 3 | ) | const |


| Author: | Shibukawa Yoshiki |
|---|---|
| Contact: | yoshiki at shibu.jp |
| Copyright: | This document has been placed in the public domain. |
This feature is experimental.
This sample file is pyspec/sample/sample_dbc.py.
This method is used for assertion not to change the value. When you would run tests at first, PySpec would record the value and the spec's result would become 'ignored'. After that, the recorded value will be used for checking the value.
sample:
from pyspec.embedded import * from pyspec.embedded.dbc import DbCobject, DbC class Behavior_CARDatabase(): @spec def You_should_be_able_to_see_power(self): G37 = CARDatabase.get("G37") # if change the result, this spec will fail About(G37.get_power()).should_not_be_changed()
If you change the module name or the class name or the spec name or the expression in About() , PySpec can't find the recorded values. So the spec always become 'ignored' and records the value whenever you change these names/expressions.
| Option | Description |
|---|---|
| reset=False | If this parameter is True, PySpec reset the record. |
This function is defined at pyspec.legacy_code.
This function creates proxy object and wraps the target object in the proxy. At first you call the function of the target object through this proxy, a history of function calls would be recorded and the spec would be 'ignored' (neither success nor fail). Next time you run spec, PySpec verifies the function calls.
This function is useful for checking the source code is not broken during refactoring/enhancing activities.
| Option | Description |
|---|---|
| target_object | The object you want to |
| hook_methods=[] | The method name list you want to record(default=all methods) |
| runtime_option=None | This is backdoor for testing PySpec itself(see behavior_pyspec_legacy_code.py) |
| check_return=True | This flag controls that PySpec verifies return values or doesn't |
| check_args=True | This flag controls that PySpec verifies method arguments or doesn't |
sample:
@spec def check_log_value(): log = StringIO.StringIO() log = test_proxy(log) # create log proxy write_log(log) def write_log(log): log.write(name()) # recording/verifying ``write()`` method call log.write(score()) # recording/verifying ``write()`` method call
You can control these features in command line. It's important to use them.
| Option | Description |
|---|---|
| -r, --reset-legacy-data | Reset the all recorded values. |
| --show-legacy-data | Show the function call history in reST format. |
After big refactoring, the behavior of your code wouldn't match the record. In this case, these specs would be failed every time. If your other specs have passed, you should reset the history. The new behavior after the refactoring becomes new code navigator.
The history record of your code is good information to analyze it. You can see the history whenever you want.
There is a sample of legacy support function. See sample/rst2codeplex. If you want to run this sample, you need to install docutils.
Create new program from existing source code. New program generates CodePlex wiki format from reStructuredText. To create it, you use the docutils/writer/html4css1 module.
Actually, docutils is well tested product. But in this sample, it was treated as legacy product (that had no tests).
At first, you need to find entry point. It's important step. If there is no entry point, you have to create or modify it. Docutils has useful function publish_string(). This sample uses the function.
If you create it, DI or some technology help you. Actually, you should create the entry point after running the first spec and fail (It's basic rule of TDD).
You would write two specs. One is a basic style spec. And another spec uses the legacy code support method. Of course you can put together these methods. But you shouldn't do that. These methods have there own roles.
spec:
class Behavior_rst2codeplex(object): source_title = """ ========== Test Title ========== """ @context(group=1) def Title_source(self): self.result = publish_string(self.source_title, writer_name="codeplex", writer=Writer(translator=CodePlexTranslator)) @spec(group=1) def can_convert_to_wiki1(self): About(self.result).should_include("! Test Title") @context(group=2) def Method_calls_in_createing_title(self): def TranslatorWithProxy(document): translator = CodePlexTranslator(document) return test_proxy(translator, check_return=False) self.writer = Writer(translator=TranslatorWithProxy) @spec(group=2) def should_not_changed_for_title(self): print publish_string(self.source_title, writer_name="codeplex", writer=self.writer)
If you run this spec, the result would become fail. Copy docutils/writer/html4css1 into your workspace and rename it.
| Before | After |
|---|---|
| __init__.py | rst2codeplex.py |
| HTMLTranslator | CodePlexTranslator |
After initialize steps, you can run these specs again. If errors become failures, you can see the function call history record:
$ python behavior_rst2codeplex.py --show-legacy-data method: method_call_should_not_changed_for_title ================================================ dispatch_visit(<document ids="test-title" names="test\ title" source="<string>" title="Test Title"><title>Test Title</title></document>) dispatch_visit(<title>Test Title</title>) dispatch_visit(Test Title) dispatch_departure(Test Title) dispatch_departure(<title>Test Title</title>) dispatch_departure(<document ids="test-title" names="test\ title" source="<string>" title="Test Title"><title>Test Title</title></document>) astext()
From this information and the source code, you can understand the function visit_title() creates the title string. After modifying the part of the method, the first spec would pass and second spec would fail. This legacy support refers old code behavior. So if the behavior is changed after refactoring or modification, this spec may be fail.
rst2codeplex.py:
elif isinstance(node.parent, nodes.document): self.body.append('! ') self.context.append('\n\n') self.in_document_title = len(self.body)
Now, you watched the first spec was passed. You reset the old function call history record:
$ python behavior_rst2codeplex.py --reset-legacy-data
The second spec refers new behavior. This spec can detect unexpected part of the code base was broken or not. It is one of insurance. If you repeat 2nd step-4th step, you will have many normal style specs and you can throw these insurance into a trash box.


Marc Steen, Menno Manschot, Nicole de Koning
I have a suspicion that the (mainstream field) of Service Design could have a lot in common with Firmware from the point of view of having difficulties materialising the field of work. That is to say, the holistic asynchronous flow of events which combine together to deliver a service are equally hard to concretise, although we would expect users to be able to describe parts accurately, drawing on their common sense, in a way which is perhaps impossible with firmware, because humans can be deployed to deliver the service.
Already found before Facemooc, but provided as part of the Facemooc course reading materials.
"The design of a system can be considered as a user-centred design only if it meets the aims, requirements and mental models of users."


@Retention(value=RUNTIME)
@Target(value=TYPE)
public @interface Mod
FMLEvent
at pre-defined times during the loading of the game, based
on where you have applied the Mod.EventHandler
annotation.
This is a simple example of a Mod. It has the modId of "MyModId", the name of "My example mod", it is version 1.0, and depends on FML being loaded.
package mymod;
// Declare that this is a mod with modId "MyModId", name "My example mod", version "1.0" and dependency on FML.
{@literal @}Mod(modId="MyModId",name="My example mod",version="1.0",dependencies="required-after:FML")
public class MyMod {
// Populate this field with the instance of the mod created by FML
{@literal @}Instance("MyModId")
public MyMod instance;
// Mark this method for receiving an {@link FMLEvent} (in this case, it's the {@link FMLPreInitializationEvent})
{@literal @}EventHandler public void preInit(FMLPreInitializationEvent event)
{
// Do stuff in pre-init phase (read config, create blocks and items, register them)
}
}
| Modifier and Type | Required Element and Description |
|---|---|
java.lang.String |
modid
The unique mod identifier for this mod
|
| Modifier and Type | Optional Element and Description |
|---|---|
java.lang.String |
acceptableRemoteVersions
A replacement for the no-longer-existing "versionRange" of NetworkMod.
|
java.lang.String |
acceptableSaveVersions
A version range specifying compatible save version information.
|
java.lang.String |
acceptedMinecraftVersions
The acceptable range of minecraft versions that this mod will load and run in
The default ("empty string") indicates that only the current minecraft
version is acceptable.
|
java.lang.String |
asmHookClass
Deprecated.
|
java.lang.String |
bukkitPlugin
An optional bukkit plugin that will be injected into the bukkit plugin
framework if this mod is loaded into the FML framework and the bukkit coremod
is present.
|
boolean |
canBeDeactivated
If your mod doesn't have a runtime persistent effect on the state of the
game, and can be disabled without side effects (minimap mods, graphical tweak
mods) then you can set true here and receive the FMLDeactivationEvent to
perform deactivation tasks.
|
java.lang.String |
certificateFingerprint
Specifying this field allows for a mod to expect a signed jar with a
fingerprint matching this value.
|
Mod.CustomProperty[] |
customProperties
A list of custom properties for this mod.
|
java.lang.String |
dependencies
A simple dependency string for this mod (see modloader's "priorities" string
specification)
|
java.lang.String |
guiFactory
An optional GUI factory for this mod.
|
java.lang.String |
modLanguage
The language the mod is authored in.
|
java.lang.String |
modLanguageAdapter
The language adapter to be used to load this mod.
|
java.lang.String |
name
A user friendly name for the mod
|
boolean |
useMetadata
Whether to use the mcmod.info metadata by default for this mod.
|
java.lang.String |
version
A version string for this mod
|
public abstract java.lang.String dependencies
public abstract boolean useMetadata
public abstract java.lang.String acceptedMinecraftVersions
public abstract java.lang.String acceptableRemoteVersions
NetworkCheckHandler
annotation on a
method in this class.public abstract java.lang.String acceptableSaveVersions
SaveInspectionHandler
instead.public abstract java.lang.String bukkitPlugin
BukkitPluginRef
annotation on fields.
This may be implemented by a bukkit integration. It is not provided with
vanilla FML or MinecraftForge.public abstract java.lang.String certificateFingerprint
FMLFingerprintViolationEvent
event firing prior to any other
event on the mod.public abstract java.lang.String modLanguage
public abstract java.lang.String modLanguageAdapter
ILanguageAdapter
just like the Java and Scala adapters.
A class with an invalid constructor or that doesn't implement
ILanguageAdapter
will throw an exception and halt loading.@Deprecated public abstract java.lang.String asmHookClass
Mod
to do with what it will.IASMHook
.public abstract boolean canBeDeactivated
public abstract java.lang.String guiFactory
IModGuiFactory
that will be instantiated on the client
side, and will have certain configuration/options guis requested from it.IModGuiFactory
public abstract Mod.CustomProperty[] customProperties


from monster import Monster import player import pygame class Game: def __init__(self): # Init group for player only self.all_players = pygame.sprite.Group() # Init sprite player for game self.player = player.Player(self) # Add player in payer group self.all_players.add(self.player) # Stock last key activated self.pressed = {} # Definition new group of monsters self.all_mummy = pygame.sprite.Group() # Spawn monster self.spawn_monster() def check_collision(self, sprite, group): return pygame.sprite.spritecollide(sprite, group, False, pygame.sprite.collide_mask) def spawn_monster(self): # Create monster monster = Monster(self) # Add new monster in group self.all_mummy.add(monster)


//
My name is Tyler Merry
follow the presentations tymerry.com/rwdSlides
follow the presenter @tyler_merry
sponsored by the
960px...
"normal" size
"normal" pixel density
Does anyone actively do RWD?
What is your process?
design → front-end → back-end
design → front-end → back-end
design → front-end → back-end
design → front-end → back-end
design → front-end → back-end
600px by 600px
Mood boards
Lets change designing in the browser to deciding in the browser.
- Dan Mall
Mobile first!
Responsive Frameworks!
Let content rule!
Start mobile, add breaks when you think it feels right
Performance
Feedback
Small Teams
You have a Unicorn
Your team is large enough to be specialized
When you don't want a front-end coder making these types of decisions
hard mode
Look how rare it is!
(no excuse for designers, or front-end devs)
even if you can... mono-tasking FTW
Sharing is caring
If you can specialize roles why wouldn't you?
What if you want to go native?
lets fire up photoshop!
Maybe photoshop isn't our tool of choice...
GOALS
wait... indesign?! the thing for print right?
There is NO tool that does everything out of the box


Date memoizes some instance methods using metaprogramming to wrap the methods with one that caches the result in an instance variable.
If a Date is frozen but the memoized method hasn’t been called, the first call will result in a frozen object error since the memo instance variable is uninitialized.
Work around by eagerly memoizing before freezing.
Ruby 1.9 uses a preinitialized instance variable so it’s unaffected. This hack is as close as we can get to feature detection:
Required files
- date


Step #2: Enter Your Profile Information
Enter your name, company, social media accounts, and a short bio. We don't have a way of sending messages on #openHSV, so please provide your social accounts as a way to let others contact you.
After you submit your profile, a moderator will review your profile in an attempt to verify that you live in the Tennessee Valley. This is because we're trying to build a network of local professionals. Once your profile's been reviewed and accepted, we'll list your profile on the site!
Have a question? Don't see your industry category listed? Let us know via the contact form in the lower right.


Symbolic Sensitivity Method for Mismatch Analysis and CMRR Improvement
March 2015 - October 2015
Field: Symbolic Analysis, Analog Circuit Simulation
Goal: Mismatch and Common Mode Rejection Ratio (CMRR) are becoming a concern in biopotential signal processing circuits in the application of weak signal acquisition using low-power and low-voltage design techniques.
Proper tools are needed to quickly locate the sensitive mismatch components to improve the matching quality and CMRR.
This work proposed a symbolic sensitivity based technique that can help quickly localize the mismatch-sensitive components and suggest intuitive guide for resizing.
[PDF]
- Proved the symbolic construction condition for multiport analysis in Graph-Pair Decision Diagram (GPDD) based on Binary Decision Diagram (BDD).
- Reduced memory consumption for the GPDD structure by 50% on average and shortened the symbolic construction time by 3-4 times, using a multi-port symbolic construction approach.
- Applied symbolic sensitivity computation to recognize most sensitive circuit elements to mismatch, instead of using the time-consuming Monte-Carlo analysis.
- Optimized CMRR performance by means of sensitivity observation of peripheral capacitors, and reduced the mismatch due to parasitic elements in an operational amplifier.
BDD structure for CMRR calculation.
Sensitivity results for a two-stage opamp with unity feedback.
Topological Symbolic Simplification Algorithm for Analog Circuits
March 2014 - June 2014
Field: Model Order Reduction, Symbolic Analysis, Analog Circuit Modeling
Advisor: Prof. Guoyong Shi
Goal: Symbolically generated network functions for an analog integrated circuit are complicated in general.
For this reason a variety of simplification methods have been proposed in the literature.
In this work a novel topology-based symbolic simplification method was proposed, which was capable of systematically and automatically generating a simplified small-signal circuit together with a simplified symbolic network function.
[PDF]
[Slides]
- Proposed a topological symbolic simplification algorithm for analog circuits by automatically providing an interpretable simplified circuit topology for operational amplifier analysis; validated and experimented on a symbolic simulation engine.
- Built the relationship between GPDD data structure and circuit topology by two types of elimination operation on symbols.
- Obtained matching topologies automatically; compared to methods given in classical analog circuit textbooks, cut down nearly 80% symbols in original circuits.
Two types of elimination operation on GPDD.
Test result for topology simplification.
Incremental Symbolic Construction for Analog Circuit Topological Modeling
October 2012 - June 2013
Field: Binary Decision Diagram (BDD), Symbolic Analysis, Analog Circuit
Advisor: Prof. Guoyong Shi
Goal: Symbolic methods for analog circuit analysis and modeling have been well studied.
However, little is known on how to create symbolic models incrementally while a circuit topology is being modified.
This work proposed an incremental symbolic construction method applicable to incremental circuit topology change based on GPDD.
[PDF]
[Slides]
- Developed a GPDD simulation engine to symbolically compute small-signal transfer function.
- Implemented an efficient symbolic modification algorithm for GPDD based on symbol limit value when adjusting the circuit topology.
- Proposed symbol reordering and novel sign reduction algorithms to significantly reduce memory consumption of the BDD structure by about 40% in the experiment.
Incremental construction example.
Sifting effect by symbol reordering.
Envelope Tracking Techniques Used in RF Power Amplifier
November 2011 - October 2012
Field: Analog & RF Circuit Design, System Modeling
Partner: Jingyang Zhu and Bicheng Ying
Goal: With the development of wireless communications, high-efficiency power amplifiers (PAs) have become more and more important in portable electronic instrument.
The work focused on the envelope tracking techniques implementing on a “Class AB” PA with the OFDM 802.11 input to improve its average efficiency.
[PDF] (Chinese Version)
- Built a mathematic model to verify the envelope tracking principle and the entire system in Simulink.
- Designed a folded-cascode operational transconductance amplifier (OTA) with a GBW of 35.8MHz and a phase margin of 58° used in the envelope tracking system.
- Integrated all the building blocks in the envelope tracking system, and verified the whole system by SpectreRF simulation.
Envelope tracking principle.
Envelope tracking experimental result.
Modeling and Calibration of High Speed, High Resolution ADC
October 2010 - November 2011
Field: Mixed-Signal Circuit, System Modeling
Goal: Analog-to-Digital Converter (ADC) is the key building block in many modern signal processing systems, such as wireless communication system and image acquisition system.
The work established a system model of high speed and high resolution ADC with Simulink. Meanwhile, the project realized a harmonic distortion calibartion (HDC) algorithm.
[PDF] (Chinese Version)
- Studied the fundamental ADC background, especially the knowledge about the sampling theory and the pipeline ADC structure.
- Built a Simulink model for a 14-bit 100MHz-sampling-rate pipeline ADC with redundant sign digit (RSD) correction and an HDC algorithm block.
Constructed an SNR Measurement block and a noise generation block for auxiliary function.
- Verified and reproduced the harmonic distortion calibration algorithm for 3rd-order distortion at system level.
Harmonic distortion calibration algorithm.


Welcome,
Manager!
Reporting
| Team Member | Matter Name | Matter Number | Reuqest/Task | Case Type | Completion Time |
|---|---|---|---|---|---|
| Shawna Rohr | John Doe | 20000198 | Request | Tort-Other | 20 days |
| Shawna Rohr | Jane Smith | 33321111 | Task | Tort-Trucking | 2 Days |
| Shawna Rohr | Sales Sally |<PHONE_NUMBER> | Request | Tort-Product Liability | 38 Days |
| Bryan Malloy | Billy Bob | 567887677 | Task | Tort-Trucking | 1 Day |
| Bryan Malloy | Java Joe | 76543223 | Task | Class Action | 9 Days |
| Amy Sellars | Richie Richards | 12345678 | Task | Tort-Other | 3 Days |
| Amy Sellars | Office Manager | 99887766 | Task | Tort-Other | 1 Day |
| Amy Sellars | Support Lead | 445321567 | Request | Tort-Pharmacy | 90 Days |
| Bryan Malloy | Regional Director |<PHONE_NUMBER>2 | Request | Tort-Other | 1 Day |
| Bryan Malloy | Senior Marketing Designer | 897766754 | Task | Class Action | 4 days |
| Shawna Rohr | Regional Director | 51986245 | Task | Employment | 1 Day |
| Shawna Rohr | 09876544 | Task | Employment | 4 Days | |
| Andrea McGee | Chief Financial Officer (CFO) | 55678544 | Request | Tort-Other | 5 Days |
| Bryan Malloy | Systems Administrator | 334343434 | Request | Employment | 8 Days |
| Andrea McGee | Software Engineer |<PHONE_NUMBER>8 | Task | Commercial | 1 Day |
| Andrea McGee | Personnel Lead | 999999999 | Task | Tort-Trucking | 30 Days |
| Andrea McGee | Development Lead | 333333333 | Request | Commercial | 98 Days |
| Andrea McGee | Chief Marketing Officer (CMO) |<PHONE_NUMBER> | Task | Tort-Other | 14 Days |
| Andrea McGee | Pre-Sales Support |<PHONE_NUMBER> | Task | Tort-Other | 9 Days |
| Amy Sellars | Sidney Aust | 856008889 | Task | Tort-Other | 3 Days |


double speed Internet Part 7 - ECMP (kind of)
Share Facebook , Google+ , LinkedIn , Twitter
[NOTE] This part 7 in a series of posts. The rest can be found here.
In the last post I mentioned I am now using Hetzner for hosting a dedicated box. Thats still live, and going well. I have a /29 IP range (6 usable) and also 2 other IPs. So far, so good… But because i was using a Socks Server, I was not fully able to use the /29 ips… I use something like as follows:
essentially, for each public IP i have that i want to map to an internal IP, i have a POST and PRE ROUTING rule, plus the required forward rules… But, if socks are used, then that goes out the Window, since TCP traffic will look like its coming from the socks server… So, i killed the socks server, removed the IPTables rule, and then realized that while outgoing traffic was being balanced somewhat (2 default rules on the internal box pointing at the OpenVPN IPs from the Hetzner box) incoming was a problem. Hetzner knew how to get to my internal network, but only though one ip… enter Quagga and Zebra…
Quagga is a routing software suite, which can do protocols like OSPF, BGP and RIP, and Zebra is the component that does static routing. using their documentation on static routes, I created a static route to my internal network with 2 next hops, the OVPN IPs from the internal box… and, after restarting Quagga, all works! happy days! now i can forward ips from outside the network to inside the network correctly, and they look like they are the public ip!
So, whats next then? well, I now have a server in Germany (Hetzner) and one in France (OVH), and can spin one up in the UK or the US (Digital Ocean). Given that i have Quagga running on the box, i am now thinking of trying to see if its possible to route traffic depending on distance or something similar… If i am trying to hit a server in Hetzner’s DC, i should go though Germany. If its in Digital Ocean, go though either US or UK servers, same with OVH. Then figure out who has the fastest links to, say, Amazon, Azure, Netflix, BBC, Dropbox, etc, and add either static or dynamic links to the router… essentially, thats the theory… lets see how that works…
was last updated: July 5, 2019: fixing all aliases and build issues (41ef786). Found an issue? Improve this page
About
homepage of Tiernan OToole, Geek, photographer, GeekPhotographer, and lazy git.
Recent Posts
- Fixing CID (Caller ID) on incoming calls with 3CX
- Posts
- Network Update Info April 2019
- Adding a Netgear LB2120 to the homelab
- Finally going all in on VoIP
- Auto deploying to multiple servers with GitHub and Webhooks
- Moving the site to Hugo
- Playing with AMD’s Epyc
- AS204994, Own IP Space and Anycast
- Blogging on an iPad Pro


We're sorry, but something went wrong. Our site administrators have been notified, and we'll get it corrected as soon as possible.


Add New Employee
General Details
Full Name
Mode of Employment
Full Time
Part Time
Intern
Employee ID
Personal Details
Date of Birth
Father's Name
Blood Group
O-
O+
A-
A+
B-
B+
AB-
AB+
Aadhar ID
PAN ID
Voter ID
Passport ID
Spouse Phone/Email
Bank Account Number
Important Dates
Date of Joining
Confirm Date
Date of Registration
Training Start Date
Training Completion Date
Contact Details
Primary Contact No.
Emergency Contact No.
Present Address
Permanent Address
Personal Email ID
Official Email ID
Skype ID
Register


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 1
Preheat the oven to 200C/400F/Gas 6.
For the kiev, divide the gorgonzola into two flat rounds and stuff inside the chicken breast pockets. Close over the chicken to seal the cheese within.
Place the flour onto a plate and dredge the chicken breasts in flour, then dip them in the beaten egg and coat with the breadcrumbs. Repeat this again to ensure the chicken is completely cooked.
Heat the oil in a deep pan until a breadcrumb sizzles and turns brown when dropped in it. (CAUTION: hot oil can be dangerous. Do not leave unattended.). Deep-fry the chicken breasts for four minutes until crisp and golden, then remove with a slotted spoon.
Drain the chicken breasts on kitchen paper and place them on a baking tray. Bake for five minutes, or until the chicken is completely cooked through.
For the fondant potatoes, melt the butter with the olive oil in a frying pan. Add the potato slices and sauté for two minutes on each side until golden. Season with salt and freshly ground black pepper.
For the sauce, heat the olive oil in a frying pan and fry the red pepper.
Add the sugar and balsamic vinegar and boil to reduce until the sauce is thickened.
To serve, place the chicken kiev onto the fondant potatoes on a plate and spoon around the sweet pepper sauce.


---
layout: page
# The Home layout
---
Hi, I'm Thong Tran,
I am a problem solver.
I always find it rewarding to work with new challenges and technologies. By working to understand the problems - their variables, constraints, and objectives - I strive for optimal solutions that are elegant, efficient, and adaptable.
Contact me here:
{% for entry in site.data.contact %}
{% capture url %}
{%- if entry.type == 'github' -%}
https://github.com/{{ site.github.username }}
{%- elsif entry.type == 'twitter' -%}
https://twitter.com/{{ site.twitter.username }}
{%- elsif entry.type == 'email' -%}
{% assign email = site.social.email | split: '@' %}
javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
{%- else -%}
{{ entry.url }}
{%- endif -%}
{% endcapture %}
{% if url %}
{% endif %}
{% endfor %}


Luis Suarez exclusive: A lot of things were invented about my injury
The Barcelona striker missed the Copa del Rey final to undergo surgery
by Jordi Gil► Here you can read the complete Luis Suárez interview in Spanish
In the interview which Luis Suarez gave to SPORT, the Uruguayan striker spoke about the controversy which surrounded his injury problems last season. The Barcelona man didn't hide his anger at some of the information which was published at the time, even saying that a lot was made up.
Suarez, a player completely committed to the team, was hurt by some of what was published when he was forced to miss the Copa del Rey final loss to Valencia in order to undergo surgery.
How do you feel after recent injuries?
I've been injured twice this season. I cleared it all up while with Uruguay because a lot was said. I knew how long I was going to be out for more or less (the second time) because I spoke with the doctors. (The media) said that I was going to have an injection to play against Celta and go with the national team... neither Uruguay nor Barça would allow that. It wasn't necessary for two friendlies. You have to get used to it at the end of the day and time will heal everything.
A lot was said about your knee injury before the Copa del Rey final as well.
I tried to clear that up at the time because it hurt to lose the final and for me to be blamed. They said we lost the Copa because we didn't have a No.9, that Suarez hadn't played... and that hurt me. If I ask you, someone who writes for a living and has a broken bone in the hand and the doctor tells you you have this injury, can you write? No, it's difficult. I had a torn meniscus. How can I go against the doctor? It is impossible. They invent things. The injury I had at the start of last season was a cartilage problem, it was nothing to do with the meniscus.
The meniscus injury happened at Anfield?
Yes. There were 10, 15 minutes to go. With the adrenaline, I kept going. I didn't feel much pain. After, in the dressing room, I felt it, put ice on... but I am not going to keep clearing things up.


With automatic notifications enabled, you will get an automatic notification on the date and time of your added birthdays itself.


TiddlyBone
An example
tsapp
using
Backbone.js
,
Handlebars
and
RequireJS
. This is very much work in progress.
Tiddlers
New Tiddler
Get Tiddler
Tiddler content will be placed here.