text:
I was a flash programmer at Zynga for 3 years. AMA
videogames, programmer, zynga, flash
Had some people asking me to do an AMA after replying to questions in an ELI5 thread, so here trying this again. I did an AMA just after I left (about a year ago) on the same topic: http://redd.it/11pcvy
I did a lot of work on Flash performance there, so if you want to ask any questions in that direction, feel free.
edit proof: old business card
edit 2 it's 2 AM, so I'm gonna go to bed. I'll answer the questions already in my inbox now, and I'll get to anything else that gets asked tomorrow morning
edit 3 actually going to bed now.
edit 4 and I'm back, and this blew up while I was asleep. I suppose I should thank the guy who said this was front page material, since I didn't believe him. Will try to answer everyone, but there's a shit ton of you.
edit 5 and finally all direct questions answered and trolls ignored. Thanks to whoever game me reddit gold, I suppose I'll have to figure out what that does. I'll continue to answer anything posted that replies to me directly, there's too many comments for me to reply to every single one of them. might take me a while tho, cause I do actually have work I want to get down.
edit 6 since a few people have asked - I'm working on an indie horror game with an artist friend. we haven't shown much yet, but if you want to keep up to date you can follow us on FB: https://www.facebook.com/glowstickgames
Comments: 1002 • Responses: 61 • Date: 2013-11-13 07:06:09 UTC source
ahmadalfy578 karma 2013-11-13 07:59:26 UTC
Why does it feel like social games (games hosted on social networks like Facebook, Google+ ...) are very similar? The all share the following:
Usually there are 2 financial units in the game, one is hard to get and costs real money, one is easy to get and you can't really much with it.
Daily reward for playing each day.
Tasks/missions that require you have x-number of friends/neighbors who play the game.
Visit your friends/neighbors everyday for special reward.
Tasks that take time could be skipped using the first type of financial units I mentioned above.
Usually there is a limit to the time you can play. Your character have stamina or could do x-number of action and have to wait x-number of minutes before that stamina is renewed.
Who is responsible for the lack of creativity here? Who forced this model? Every game feels like it's exactly the same with the change of the graphics, dialogue, story line ...
Thanks for doing that AMA :-) I asked you mainly because I wanted to ask about Zynga ripping off other games but that was asked by some fellow redditors.
LagrangePt569 karma 2013-11-13 08:10:06 UTC
Facebook games blew up at the same time as two other fundamental design concepts: Freemium and Games-As-A-Service.
A lot of innovation was done on how to make those models work, and everyone was copying mechanics from the games that were most successful. Some companies actually understood why those mechanics worked and used them well... some didn't.
2 currencies - 1 can be earned in game easily and can unlock most content. Easy reward to give players. The other could be earned in tiny amounts, and bought in large amounts. The most successful games were fun without the second currency, but made plaeyrs always want it.
various things over time - serve the game in limited bites, and make the player come back for more. this will create a lasting relationship with the customer, which is vital since players very rarely pay anything on the first day they play a freemium game.
require x friends / neighbors - creates artificial virality, where people would get other people to join the game. much cheaper then buying tons of ads.
skipping time for money - again, games do everything they can to make players want that second currency.
stamina - usually called energy mechanic. games that had an energy mechanic made a huge amount more than games that didn't.
Games that didn't have those mechanics didn't make enough money to keep updating, and if a game didn't continue to provide fresh content all the players would leave.
After 1 game is a huge success, everyone else makes a similar game and tries to steal a piece of that pie, and future games try to recreate the initial success.
There was a lot of innovation - early farmville didn't have a lot of those mechanics, they were added in later. We also tried a lot of mechanics that failed and were ignored. However, it was an environment where copying a feature took weeks instead of years, so all the games copied the most successful games.
tsujiku162 karma 2013-11-13 10:29:56 UTC
Do you think there are any ethical considerations with some of these mechanics?
A lot of people oppose 'pay to win' mechanics, and I know I personally find the constant requests to join random games to be extremely annoying. Are those things that are considered at all when designing a game with these mechanics?
ethical considerations? absolutely, it's why I quit. A few months ago someone tried to get me to add those mechanics to a real money gambling game, which I refused to do (and convinced the other guy not to pursue either).
re pay to win - the invest and express model is not a game that can be won, so their is no pay to win. Farmville and similar games were about growing and nurturing something, similar to sim city.
Being completely honest, while I didn't like spamming, if you weren't part of our target audience the business people didn't care, and if you didn't like the game invites then you weren't part of our target audience. Facebook eventually cracked down on the spam a lot, which caused Farmville to drop from 30 million users/day to about 23 million.
Design is done by a bunch of people, who then have to justify the designs to the business people at the top. so while there were always arguments for not spamming and not adding negative mechanics, at the end of the day Zynga was in the business of making money, so that's what got put into the games.
thekeanu446 karma 2013-11-13 08:49:44 UTC
Was not expecting this level of thorough/quality answers.
Kudos, OP
my fingers are tired, and I type for a living -.-
dangerdark304 karma 2013-11-13 07:16:59 UTC
I sorta answered this in my previous AMA, but I'll summarize a bit:
Zynga focuses on adding social mechanics to games, not innovating core game mechanics. You could take the original unreal tournament and Doom and say that one copied the other because both are about shooting stuff, while ignoring that UT was focused on shooting other players. Zynga had no shame about copying core game mechanics from other games, but the vast majority of our time was spent trying to come up with new features to add into games after release, and a lot of those were actually innovative.
TL;DR: Zygna ripped off core game mechanics and added tons of their own features and systems to them. As far as I can tell, this is standard practice in the games industry, though usually companies try to innovate the core gameplay as well. At no time did I witness Zynga trying to straight up clone another game, though I did hear rumors.
gnarfel190 karma 2013-11-13 07:14:14 UTC
Where do you see HTML5 going, in regards to replacing the traditional plugin model?
Is HTML5 video a good idea?
How is writing for the Canvas element (and the associated optimization pitfalls) different from writing complex programs in Flash?
I had to work with Cocos2dx (with JS bindings on mobile) and Cocos2dHTML5 for a while after I left zynga.
Overall, HTML5 replacing flash for basic stuff like video and interactive layout is (I feel) a good thing.
OTOH, Creating interesting interactive UI in flash is way easier than any other system I know of, which is a large part of why it's so popular. That hasn't been solved by HTLM5 yet, and it will take a lot of work on the tools before they match up to Flash creation tools in Adobe CS.
HTML5 also has a lot of really annoying parts when you have to accommodate older browsers, and sometimes it's actually faster to use heavily abused DOM rendering rather than using Canvas rendering (which makes for headache inducing sessions of trying to optimize your shared code for DOM on some browsers and Canvas on others). Having webGL isn't reliable yet, which means that a lot of things that are easy in flash are hard in html5.
HTML5 also suffers a lot of the problems that flash has, like really horrible perf gotchas that non-senior devs won't know to avoid. The browser makers are putting in a ton of effort to make HTML5 run fast, but even heavily optimized html5 code seems to have a lower overall performance than decently optimized flash code.
Any0neInCherno137 karma 2013-11-13 09:28:50 UTC
I haven't got any questions, just wanted to say thanks for the detailed, thought out responses. Definitely one of the better AMAs I've read through.
synJstarcraft120 karma 2013-11-13 07:48:59 UTC
Do you think Unity is worth the investment to learn? If not, where might one spend their time learning the necessary skills to compete?
Absolutely. Unity is the easiest game engine I've ever worked with, though I haven't had time yet to dig into the really interesting stuff. It's a great way to get a basic idea of how 3D development happens and what important parts are, but it's really light on the coding side (a lot more development happens in the editor instead of the coding).
It's great for making a couple projects in. If you want to develop valuable skills for traditional industry, I'd point you to try out the UDK (unreal development kit), which is a lot more coding than unity, but still easier on you than I've heard other engines are. I had a lot of trouble with unrealScript, but I've been working in very c like languages for years.
Aside from that, I've heard that just picking your favorite PC game and getting involved in the modding scene is really good, but I've never tried it.
umar16790 karma 2013-11-13 07:09:48 UTC
What has your career path been like so far?
I started out as a research assistant to a professor I worked with in college. (summer job after graduating). I was mainly focused in #D graphics and physics simulations, with some work in AI and massively parallel computing. Joined zynga as a junior dev in 2009, starting on Farmville. I stayed on for about 18 months, which at the time left me as the programmer who had been on the project the longest. During that time I trained up as an Ops responder (servers crashing, go fix it!) and flash optimization ("We need to replace all XML accesses with Object accesses, we'll get another 2 FPS out of it"). I also made a few systems no one else had time / knowledge to, like arches you could walk through. I made a system for custom ground tiles that was really awesome, but the business people sat on it cause they could never budget the horribly complex UI they wanted to use to sell it to people (IT could have gone out with trivial UI work, but it wouldn't have made enough money that way). Near the end of that I started coordinating company wide performance tracking and arguing for improving it. I was also managing our engineering relationship with Adobe then, which really should have gone to a higher level employee.
After that I moved onto the central engine team, which meant optimization, generalization, integrating improvements from other teams, supporting other teams, and generally arguing for better engineering practices. Co-wrote a blitting rendering engine for flash that could be hugely faster than the default engine if used right, then spent ages helping teams replace it. Got flown out to remote studios to help them get launched and improve performance. Got to write most of a component system for our flash engine that would have made it a cross between linux library installation and Unity easy-to-add components, though I'm not sure if that every really got used before Zynga shifted everyone over to working on mobile.
After I left Zynga, I joined a small startup founded by the same engineers who had originally hired me. Worked on mobile games there for a while, but eventually they pivoted to focus on analytics software. Did a lot of work with Cocos2dx and Cocos2dHTML there, though I wish more had been open sourced. I think they're still considering selling that stuff as middleware, and if they don't I doubt they'll take the time to open source it.
After that, I joined up with an artist friend and we're working on making a horror game (with both of us focusing on making an awesome game first, tho we definitely want to make money off it still). Hopefully we'll have a kickstarter out for it relatively soon.
shiroboi49 karma 2013-11-13 09:52:51 UTC
Any good tips or resources for resolving isometric z layer orders? I tried to make a tower defense game with terrain height and we've constantly had problems with objects on a higher layer moving behind objects on a lower layer. I'm an artist by the way but it gave my programmer fits.
hahaha, whenever I ran out of questions to ask someone in a job interview, I'd ask them a depth sorting question. If they gave a good answer it'd be almost guaranteed that I'd recommend them for the job.
So I spent a lot of time working on a fast sorting algorithm that would work on rectangles on the ground. Farmville still has depth sorting bugs when you put a fence next to haybales.
In later games we went with the solution openGL uses, which is to cut up the image into multiple pieces and render them at different depths. this was when we were using a custom blitting engine - in normal flash rendering splitting up an object is expensive.
if everything is a cube, depth sorting is fairly easy. as soon as you have rectangles larger than 1x2, you break one of the fundamental assumptions of sorting algorithms (if A<B and B<C, then A<C. not always true in isometric depth sorting).
If you don't need to resort frequently, you can use graph search algorithms to construct a correct way to sort convex objects. If you are letting stuff move frequently, I'd recommend just accepting that it'll bug sometimes.
bananomgd-13 karma 2013-11-13 09:17:34 UTC
Going by your username, you're from Portugal. What university/higher learning facility did you attend?
LagrangePt21 karma 2013-11-13 09:19:43 UTC
um, what? Lagrange is a french name. LagrangePt = Lagrange Point http://en.wikipedia.org/wiki/Lagrangian_point
I went to University of Pennsylvania, and grew up in Dallas TX
Biblius5 karma 2013-11-13 09:32:40 UTC
A for effort!
LagrangePt5 karma 2013-11-13 09:38:49 UTC
thanks. I probably shouldn't have started this right before I was going ot go to bed.
dangerdark66 karma 2013-11-13 07:17:18 UTC
I'm 27 now, was 23 when I joined Zynga.
I originally started programming LogoWriter in 5th grade, but I dropped that and didn't pick it up again until Senior year of high school.
I graduated in 2009 when the US economy was in the shitter. I spent about 9 months looking for a job before I got referred to zynga (my mom met someone who knew someone who worked there). They were hiring like mad at that time, and I did well in the interviews they offered.
surealz27 karma 2013-11-13 07:38:36 UTC
so you were self taught?
not really, though I've taught myself a lot since I started working. In 5th grade my math teacher got some of us to volunteer to spend half of lunch period in the computer lab 'playing' with Logowriter. My high school offered a class on Maya and a class on some Lego robot software, both of which I took in senior year (we had an awesome retired engineer running our computer lab)
edit didn't realize this was a reply to a reply.
Angrysausagedog55 karma 2013-11-13 07:21:40 UTC
What was it like working for Satan?
At first, it was amazing how much fun people were having playing shitty flash games. Sure we encouraged people to spam some, but I also knew some of my college friends that sat on their FB feeds hunting posts to get rewards (and apparently quite enjoyed themselves). There was a scandal about the service we used to let people get farmcash without paying, but I thought it was handled pretty well (service was dumped, we signed on with another service where we had to approve every offer that was posted).
A few years later, I sent a (somewhat angry) email to our CEO arguing game design and how we had taken a series of small steps in a very bad direction. Then I quit a couple weeks later.
where you guys encouraged to "borrow" content ideas from other companies?
I used to work administration for another web based flash game with a virtual world type gameplay that later went on to become a facebook integrated app as well, (much like YoVille but far more advanced) during that time I noticed a lot of the zynga apps starting to use content (specifically virtual items) that was remarkably similar to what we had recently released.. (the biggest offender being YoVille)
was this coincidence and I was just paranoid, or was it a deliberate attempt on Zynga's part to cash in what was new and popular in other games?
So, keep in mind I was somewhat removed from this.
invest and express games like Yoville and farmville churned out shit tons of content, and the artists were always look everywhere for ideas. Farmville actually bussed the entire team out to farms in Napa valley to inspire new features and props (back when we were still trying to stay realistic).
That being said, we had business development and game designers who constantly played all the successful / similar games, looking to see what they did different, puzzle out why, maybe throw in an A/B test in the game to see if we should do the same, etc. I wouldn't be at all surprised to hear someone say "Game X just added a juke box. We should totally have one too". I would be very surprised to hear "go look at this game and see what items we should copy from it".
I guess at the end of the day business is business.
The main victim here is originality I suppose.
I've talked to and watched a lot of respected game designers. They all say they just take other people's components and mix them together in a new way (I think there's a good quote from Sid Meyer or something about that).
Even games like minecraft pull a lot of inspiration from others that came before
FattyMcPhatterson49 karma 2013-11-13 07:31:08 UTC
Do you miss Zynga after a year away? How does your new job compare?
I miss some of the perks, I miss a lot of the people, I miss the dogs, and I miss the paycheck.
Most of the perks aren't being offered anymore, a lot of the people (and their dogs) have left, but the paycheck still hurts.
twentythree-nineteen49 karma 2013-11-13 11:13:06 UTC
I miss the dogs
zynga allowed workers to bring their dogs into the office, which meant I could play with 5 to 10 dogs every day. I knew the name of several dogs without knowing their owner's names
poopie_pants41 karma 2013-11-13 08:47:39 UTC
If you were made CEO of Zynga, how would you restructure the company?
hmmm, at this point I'm not sure. I haven't paid much attention for a year.
If I had been made CEO a couple years ago, when I was really involved? I'll try to not use hindsight a lot, and I'm pretty sure some stuff is still covered by NDAs. I definitely would have approved some games that got canned, and canned some of the games that were just more of the same. Being able to deploy good experiences to mobile would have been a higher priority, and I may have mandated that more teams learn unity, cocos2dx, and other cross platform solutions (Zynga did have a big effort with tons of senior engineers to identify promising technologies for cross platform development... then completely ignored all the suggestions it made).
I would probably have done much worse a job than Pincus - the man has his faults, and I think Mattrick will do good things, but Pincus is a very good businessman.
EDIT two major things - merchandising! Zynga was horrible about ignoring it due to low margins, ignoring the brand an other benefits. Second, focus! We were scattered in all sorts of directions with all sorts of efforts. should have focused in on a few things and done them well.
dyl4001136 karma 2013-11-13 07:12:32 UTC
Do you receive any pressure like deadlines etc. and how did you get hired and where did you start?
deadline pressure was always there for feature devs, but I was a bit isolated from it since I was more Ops and systems development (fixing the game when someone broke it, improving performance / stability, etc)
I got hired 3 months after I graduated college (I had been working as a research assistant for one of the professors). I answered in another post more about how I got hired.
I started on Farmville only a month or two after it went live.
gnarfel28 karma 2013-11-13 07:16:05 UTC
How did the requests from 'the business side' of the company affect your vision of the games you created?
Well, I was there to make money - it was a job. At first I was trying to pay off student debt, and later I just wanted enough money to be able to 'retire' and spend a few years creating my own game.
All too often, it was a debate between idealism and realism - the game needs to make money in order to justify developing it. the business side is really good at uses stats to prove their side, which appealed to the higher ups. Unfortunately, business statistics tends to be very short term focused, which (I feel) cost a lot in the long run.
I was usually on the "but that isn't fun, which will ruin the game" side of the argument, but I often had to justify my ideas with "this will improve the game in this way, which these previous projects have shown will increase rev by this much"
Edit re read it and I feel I left out something important - I got into games to make people smile, not just to make money. I stayed at Zynga because I was reaching tens of millions of people every day and making at least most of them smile. I left zynga when I felt it was becomming far too negative on that metric.
nasty_eardrums20 karma 2013-11-13 07:57:32 UTC
How do you measure how many people you made smile? (serious question)
I had to spend a lot of time on the forums hunting for bugs (which is a soul destroying task). I would periodically dive into the more positive parts of the forum and remember that there were people who really loved the game for various reasons.
I also wore farmville shirts in public, and so I got to have random people coming up to me and talking about it sometimes.
My first day at zynga, I made it so that clicking on stuff was pixel perfect (instead of being driven by bounding boxes). 10 million people played in the next 24 hours, and a good number of them actually noticed the difference and posted happy feedback on the forums.
captsindbad24 karma 2013-11-13 07:14:56 UTC
Working on a horror game to come out on Steam and possibly other platforms. Will probably be launching a kickstarter for it soon, since I'm bootstrapping it with an artist.
Company name is Glowstick Games, tho we don't have a fancy website or anything yet.
freddymungo16 karma 2013-11-13 08:44:39 UTC
Please let us know when that happens!
We've tried to post a couple times. I'll post another AMA? not sure the best way to communicate it without being spammy / annoying.
poborskyyy13 karma 2013-11-13 09:53:47 UTC
I only did this cause people were asking me to in another thread. wasn't even going to use my personal account for promoting the game
Jefkezor21 karma 2013-11-13 10:16:16 UTC
Just post a summary+screens/vids of your game on /r/gaming, /r/pcgaming and /r/pcmasterrace. There are probably a few more subreddits you could post in, but I'm not sure...
ahmadalfy10 karma 2013-11-13 10:12:13 UTC
Now I feel bad for asking for that AMA :(
no biggy. It might help with launching the game I'm workign on, so it's good you got me to do it. even if I'm now tired and my fingers hurt from typing too much
my-little-pwny3 karma 2013-11-13 10:21:17 UTC
Maybe make a topic in /r/gaming about it as it releases? People could just ask you questions about it there.
I'll almost certainly be doing that when we do the kickstarter.
Ryan_Bingham23 karma 2013-11-13 08:10:06 UTC
Do you think Flash has reached it's final form? I stopped dev in Flash a bit after AS3 came out (yes, it's awesome i know), do you think Adobe will update AS3? id there is anywhere to update at all.
Also, do you use FlashDevelop/eclipse or the standred IDE?
As far as I know, Flash remains the easiest way to develop awesome looking UI. Adobe might pull something awesome out of it's closet (they were working on some cool stuff when I left), but I haven't paid much attention for the last year.
That being said... I think they made a huge mistake with mobile, and ultimately that will be the downfall of flash as a wide spread web solution. HTML5 is not standardized well enough though, so people will still want a truly cross platform solution for ui... not sure what that will be tho.
edit I worked in flex builder for the most part, though I know a lot of other devs were starting to use another editor shortly before I left. one of the third party ones, I don't remember which.
krilnon9 karma 2013-11-13 09:54:43 UTC
Did you go to the Flash gaming summit thing at Adobe SF the summer before you left? I was around for that and there were several Zynga people there. It would have been where we talked about some of the cool stuff you mentioned.
Edit: typo: were -> where.
Yes, I was in fact at that summit (My office is across the street from there)
I also talked about a lot of stuff with adobe engineers in zynga-adobe meetings, since we were right next to eachother. We participated in a lot of early access tests since we were really needing the products and could give them face to face feedback really easily.
Hmm, neat, then we've probably at least seen each other before. I don't remember who exactly I met there. I worked out of the San Jose office, but I walked past the giant Zynga dog a number of time when I was at the SF office temporarily.
very possibly. If you were ever at a zynga/adobe engineer meeting, I was probably the youngest guy in the room.
I wasn't ever at one of those, but I think you would have been the second youngest. I'm 23 now and was 22 when I was at Adobe.
Last time I would have met with adobe would have been summer 2012, so aside from that big summit we were probably never in the same room.
edit my minds a bit fuzzy on the topic, but I think I may have presented at that summit. I may be mixing it up with something else tho.
Iwishiknewwhatiknew21 karma 2013-11-13 07:40:05 UTC
Did you go to college? And if so, did it prepare you for game development?
Also, with all the game development software, which one would you say has been the best for you.
I went to UPENN, in the Digital Media Design major 3/6 Comp Sci, 2/6 Art, 1/6 communications.
It prepared me really well for programming in general, though I wish I had signed up for more classes about internet development and architecture (running servers, making web services, etc). The most valuable part is the algorithms and problem solving approach, as all the tools and languages I used in college I haven't worked heavily in since. (aside from c++).
Hard to say with game dev software. I got really good at flash, I got pretty good at the Cocos2dx-JS / Cocos2dHTML5 stack (which is Javascript for scripting, with either a JS engine or a c++ engine, with the c++ engine binding down into either Java or objective C...) I think my current fav is Unity, but part of that is how easy it is and that it's one of 2 3d engines I've worked in since college. Unrealscript frustrated me in comparison (a task in unity took me 1 line of code... took me about 30 in unrealscript).
Richboy4557 karma 2013-11-13 09:50:14 UTC
UPenn? My fiancee graduated from there this year and told me about someone she met that went to work for Zynga a few years back. Maybe it was you?
After I got into Zynga, I referred a bunch of people that graduated with me (none of us had jobs... 2009 sucked for entertainment industry).
I know at least 3 other people (may have been 4 or 5) that graduated in my year and that went to Zynga shortly after I did.
dpwhitey21 karma 2013-11-13 10:25:57 UTC
umm, whatever I set it to? I remember that once I got pretty sick and couldn't think straight, so I stayed at home, gave myself a few million in farm cash, and proceeded to decorate the hell out of my rather boring farm.
I had direct access to the servers and to the admin tool. I could basically modify any blob I wanted in any way I wanted, though I generally only used that ability to fix player blobs and give the team artists tons of farm cash so they could display all their work on their own farms. And occasionally giving myself limited time items that I'd missed and decided I wanted >.>
nicknitros19 karma 2013-11-13 07:52:53 UTC
Did they pay you well and/or did you feel that you were sufficiently compensated for your work?
Pay was awesome, bonuses were frequent, and I was getting a lot of stock. Then the stock price dropped to $8, then $6, then $3... the pay was still good, but the perks and bonus were dramatically reduced, and the value of my stock was 1/5th what I had been hoping for.
ZigguratOfUr15 karma 2013-11-13 08:18:46 UTC
Cool AMA. What do you think are some of the important engineering practices to successfully launch and maintain a social game? You mention that this was part of your job: Do you have a list of greatest hits in improving engineering practices?
So Zynga actually did a lot of work and innovation in rapid iteration large team production. At The time I left it, Farmville had (I think) 4 different teams working on different features, each staggered so we were putting out one or two major features every week.
We also made a lot of mistakes. We frequently allowed 'tech debt' where we added a sloppy feature we would clean up later. These piled on themselves and slowed down production as time went on, to the point you needed a 4 man team to implement a relatively small feature.
Most important part - intelligent branching and merging system. we used SVN and it was a nightmare, we switched to GIT later but I was off the game teams by then.
Every dev had their own development app. work was merged into a pod app as they worked on their feature, which they could call a team of QA to test at any time. After one of those tests, shortly before their feature would release, they could merge their changes back to trunk, where it would undergo testing on the auto build app, then get pushed to 'staging' and undergo more testing (auto build was short build runnign on a single server, staging was a simulated production environment with databases and everything). The code would be deployed to all servers, verified, and only then would the game 'update' and switch to the never version.. After which we would test it again, watch the numbers and error logs, and eventually go to be.
We had a bunch of late night releases followed by early AM fires before we learned to just delay the release to the next mornign and fight the fire then.
We kept a details ops diary of EVERY incident that affected game availability. At one point, a senior ops guy joined the team and mentioned he would have paid millions for access to that diary at his previous job.
Whenever something breaks, Either fix it so it can never happen again, make a tool that can fix it in one click, or (best option) do both. Make a magic button that fixes every known save corruption / problem you've ever encountered, and let the CS guys have access to that switch for all players.
a typical feature had a dev cycle of 3 to 4 weeks.
Have dedicated engineers to work on server fires and engine performance.
We didn't do this much, but I'd stronlgy recommend it: Have at least one or two engineers working on completely new mechanics and systems at all times, and actually release the ones that wind up being fun.
ZigguratOfUr6 karma 2013-11-13 09:18:44 UTC
A lot of this is very impressive, especially the attention to user experience metrics, and ESPECIALLY the ops diary/magic button (making a good magic button seems hard though; couldn't a fix eventually become a new way to corrupt a save?).
It also seems like bigger refactors or redesigns don't really fit into this cycle. Did Farmville get a substantial refactor to address its technical debt at any point, or was the plan basically for the initial architecture to survive the whole profitability cycle, then move to a new game?
The initial architecture held up really well - it was the core engine from MyMiniLife, which was acquired by Zynga and whose team was the core of the original FV team. The main front end coders were an ex Epic developer and a guy who was awesome at enforcing coding standards and good architecture.
We did have some fairly substantial refactors, but in general every feature that was developed involved paying off some technical debt and adding new tech debt. The systems pod or a feature pod would spend a few weeks doing the refactor in a branch, periodically merging from trunk, and would eventually release the refactor as part of the normal schedule.
We never addressed tech debt in general, just specific bits of it when they couldn't be put off or when they actually caused problems. The ops and system team were the only ones who actually chased tech debt, and we usually had hirer priorities.
The magic button was tested every release, same as other features (the QA actually had to use it all the time to fix their own accounts).
In general, said button would hunt for specific problems and fix them. I.E. PHP was fine with a hash table that started with a 0 index, but AS3 would interpret that as an array and shit a brick at the next index not being 1. PHP was also fine with a null value for the index, but again AS3 would shit a brick.
We also would do things like checking that all the objects on the player's farm actually existing in our settings file.
Early on (shortly after I started working on ops) we were in a really bad state. A new manager came in with the philosphy "if it hurts, bandage the wound then spend the time to make sure it never happens again", which was immensely valuable. A database dieing went from "get a call and work for 1 to 2 hours to fix shit" to "read about it in the morning and make sure the backups were properly replaced"
migrafael12 karma 2013-11-13 10:45:11 UTC
I just want to know one thing. Was it fun?
At first, absolutely. the IPO changed the company a lot tho, and towards the end I wasn't having any fun at all.
I still have pictures of doing office chair jousting using nerf axes :)
giananimohit11 karma 2013-11-13 10:40:54 UTC
Now I know this might be out of your purview, but I have to ask : is zynga poker rigged?
As far as I've every heard, absolutely not. It also doesn't make any sense for Zynga to rig it, since they make money regardless of which player wins.
That being said, I have heard of people playing multiple accounts in the same room, so they have more knowledge then they should
Marfell9 karma 2013-11-13 07:51:44 UTC
What is your opinion about bigger game developers? Does the stock ones tend to go more for porift and care about the shareholders profit rather than the product, or are they still willing to keep on producing good content at the risk of loseing some money?
Being publicly owned ruins any company that is based on delivering hits (gaming is fundamentally a hits based business).
I can't really speak to the rest of the industry (though comparing public to private large game companies gives a very negative view). I do know that the culture of Zynga became a lot worse after the IPO.
Before IPO, it was all about long term health of the company, making games that would be fun and profitable, etc. After the IPO there was so much pressure to "just make the numbers for the quarter, don't let the stock drop any more"
blacklutefisk6 karma 2013-11-13 10:20:02 UTC
I used to play Zynga Slots, and then one day, everyone with an iPhone received billions in coins (enough that one need never run out), enabling every machine to easily become unlocked. I don't know if you were involved in that game. If you were, do you know if that was a bug or by design? What was the response at Zynga when that happened? I recall it being around the time that the financial problems grew more visible.
I didn't even know zynga had a mobile slots game >.>
I can make some guesses tho. It's possible that was a bug, but I can't see them not trying to reverse it if it was. It's also possible they were sunsetting the game and shutting it down, and did that for some odd reason.
Mobile at that time was coming out with a lot of games that didn't make much money relative to the big name games, so while I'm sure someone got chewed out over it, I doubt it made any huge difference. The big financial problems were because FV and CV were declining and nothing else was replacing them.
remyspam6 karma 2013-11-13 10:08:21 UTC
Regarding performance. A few questions, although the last one is less important (and I'm not sure you can answer it anyway).
First: How did you do performance testing? Do you have certain scripts that populate games with hundreds of objects? Or do you let QA play long games?
Second: What is the main performance issue in Flash, is it the handling of sprites, background calculations, I/O, memory usage, etc.?
Third: My girlfriend is an avid Farmville player (level 190 or something), but Farmville is quite slow and bogs down, when playing. No doubt because of the gazillion animals, trees and whoknowswhat on that screen. Do you have any secret tips how to improve it? Eg. "play short sessions so the cache doesn't fill up", "use browser X or Y", "the games are heavily cpu/memory/fairydust dependent so improve that", etc?
1) we had a number of ways. first thing we did was stick a framerate / memory tracker in the game client that reported to our stats systems. that lets us correlate framerate with items purchased, farm size, level, country, etc etc.
second we had an AIR app that would iterate over every swf in a given folder, would place a hundred or so on screen and test the framerate for a while. we ran that on a dedicated server, so we knew how expensive every asset we had was. not sure if that still happened after I left tho.
We were messing with more advanced stuff to give us full profiles of user's session (randomly sampled or selecting specific users) and a bunch of other stuff. I left before I could see data from that stuff tho.
2) rendering vector art is huge. parsing XML was big for us, but we had a lot of xml and used it stupidly. garbage collection can be a big problem, but we were pretty good about object pooling. Easy for GC to become big if devs are careless.
3) I don't know what it's like now - it's been 2.5 years since I worked on it. Most likely it's CPU bound. At least in the system as it was, having a lot of copies of the same animal in the same pose will make the game optimize that specific animal if it has memory space(faceing up is a different pose than faceing down, left/right normally didn't matter). If the devs haven't kept adjusting that memory limit, you're probably hitting it before it optimizes any of them. I do know I once had a farm with 2 or 3 thousand chickens running at 30 fps, but putting 1 each of 200 animals would slow it to a crawl. Animated objects (mostly animals) are tons more expensive than trees or crops.
I know at one point dogs that were trying to get to the player but were blocked off was hugely expensive, but I'm pretty sure that got fixed.
Yudhisthir6 karma 2013-11-13 08:15:29 UTC
Were you self taught or go to a college? What was your learning "path", as in what technology/language you learned first, then next etc? Thanks for doing the AMA.
answered most of this in other replys
I went to Upenn, majored in digital media design.
Started with Logowriter in 5th grade, dropped it after that summer.
In high school I got into Maya and a bit of lego robot programming. In college, we started with Java, then went to c++ (with MEL and Python thrown in later). Before senior year I interned at a defense contractor working on AR. In senior year I made a simple game in Gamebryo (horrible experience), worked on a pathfinding algorithm in CUDA (that eventually got published as a research paper, woot) and a bunch of other projects. Worked as a research assistant that summer to get the paper finished and help with some drone navigation and pathfinding, then got the job at zynga. See other posts for the rest
That is pretty awesome. I am reading other answers now. But, here's a potentially dumb question: what do you think a self taught programmer needs to know when entering the industry? Like, apart from the language's (Java/C++) syntax, does basic knowledge of Algorithms and Data structures suffices, or there's something more?
aside from a general knowledge of c style syntax, knowing the detailed syntax of a language is almost worthless (unless you're selling yourself as a language expert, which takes a lot more than syntax knowledge).
Learning a new language when you start a new job is standard, and it's pretty easy if you've been exposed to a few different languages. I'd say you should do at least a couple projects in a low level language (c, or even an assembly simulator), a couple projects in java, a couple projects in c++, and a couple projects in high level languages like javascript, python, etc. It's more important to be able to rapidly become functional in a language and to write solid pseudocode solutions to problems.
I've seen self-taught programmers be functional and get paid without really knowing algorithms, data structures, and a lot else. I've spent a lot of time cleaning up their mistakes, but they're often a lot faster than me at just getting a working product. I've also seen that programmers who really understand the entire stack are pretty rare and hugely valuable, and often get promoted past their peers pretty quickly.
When I was doing job interviews, I would expect a definite must have pay him tons candidate to understand the entire stack from transistors up to pixels on the screen, including the different layers of code in between. They don't have to be able to do anything with every layer, just basically understand them. I would also expect people to really understand Big O complexity notation
knowing algorithms exist and being able know when to apply them, be able to look them up and implement them, as well as know how much they'll cost is important.
knowing how memory is managed underneath the language you use (garbage collector? manual? something else?) is also important.
etcpie6 karma 2013-11-13 08:03:20 UTC
I had never looked at AS3 when I started the job :)
It's a lot like c++ with all the hard parts removed, and as long as your algorithms, data structures, and low level understanding of CS is good, you can pick up AS3 and be awesome at it very quickly. As I posted above - in the morning I had never seen AS3, by that evening I had written a pixel perfect mouse click detection system and released it to 10 million people.
If you don't have a solid programming background, I'm probably not the best person to ask (since I went through basically a full CS degree to get that background). I'd say dive into something easy and write small programs that do something. You may need to follow a book course or something, but make sure you understand common algorithms, data structures, and other things that high level languages handle for you, as not understanding what that magic is doing is the most common source of stupid mistakes and frustrations I've seen
phearmymind5 karma 2013-11-13 07:55:58 UTC
How dependent are companies like that on in game purchases? Are things programmed specifically so someone can't really advance without buying things?
something like 80-90% of the revenue comes from in game purchases. (maybe lower as the advertising and partnership deals came into play).
The game designers typically argue for a fun game without spending a dime, while the business people argue for making the real money purchases as tempting as possible. Usually, they come to a balance where money buys you premium vanity items and lets you cheat a bit (skip past grinds, get that one last item you're having trouble collecting, skip past a quest, etc.)
Sometimes they reach a balance where the game is actually fun for a while, and sometimes they squeeze your balls.
MatureAgeStuden5 karma 2013-11-13 09:56:13 UTC
I am a bit of a gamer (STALKER, FTL and Civ 5 recently) and also enjoy so called 'casual' games like Mr Crab and Triple Town. Yet I have never played a Zynga game or Facebook game. What am I missing?
I haven't played any Zynga games since I left. I know that playing a lot of those games when they were first coming out was actually kinda fun, and they were very good and hooking you in and getting you to care about a stupid virtual farm / mafia / fish tank.
Some of their games were actually pretty fun, but expect to be squeezed for money and friend adds in any of the games that are still updating.
I'm a dedicated hard core gamer tho, so my perspective is a bit off.
ohmyshit5 karma 2013-11-13 12:31:22 UTC
Wow, your previous AMA was fucking horrible. Top question: "Y U NO?". Jesus Christ.
Thanks for willingly attempting another AMA. Interesting stuff.
yeah, there's a lot of blind zynga hate around here
Getdownlikesyndrome4 karma 2013-11-13 10:07:35 UTC
Just wondering, what's Satan's place like inside? Nice condo?
The original building was kinda sketchy had really bad acoustics (they had to buy the entire team headphones when we moved to a larger room cause it echoed so badly). On the other hand, lots of snacks, drinks, and good meals for free. Also free massages and haircuts if you scheduled far enough in advance.
There were dogs in every studio which is awesome for a dog lover like me.
The newer space was snazzier, had a bunch of arcade machines scattered around, and took longer to walk to any given studio. OTOH, I sat right near the cafeteria, we still had awesome dogs, and we had some themed snack kitchens that gave you the excuse to walk across the building as a break.
Also, monthly poker tournaments with awesome prizes (at least at first). At one point someone won a rental ferrari for a weekend (may have been a lambo, not sure).
MonsterTea8 karma 2013-11-13 10:41:33 UTC
a bit off topic, did each worker take the dog out to do its business?
yep, though there were occasional messes that the dog owners had to take care of.
Did you ever notice that many of the AS3 vs. Haxe benchmarks that people posted on the web were really sloppy? (You mentioned that improving performance was part of your job, so I imagine you would have run across these things.)
I didn't pay that much attention to Haxe - for various reasons I don't remember it wasn't practical for us to use it, even if several of our devs argued that we should. I do remember a great many sloppy benchmarks made by language fanbois of various types tho. I do remember jackson dunstan being really useful:http://jacksondunstan.com
Runeite513 karma 2013-11-13 10:36:36 UTC
um, after tax I think it came out to 2 to 3 thousand every 2 weeks, plus occasional bonuses.
I worked at a mobile gaming startup for a year after I left zynga, so yes. We would have been profitable had it been just the games, but we were also working on longer term projects with other engineers.
Unity is super easy to pick up, UDK can create better looking games but can't target as many platforms.
If you're looking at mobile games, you may want to look into cocos2dx with js bindings. if you know JS, should be easy enough for you to work in, and the JS scripts are mostly compatible with cocos2dHTML5.
herpderpherpderp3 karma 2013-11-13 08:27:22 UTC
can you post some proof in your description please?
added some
grant02 karma 2013-11-13 08:03:39 UTC
Proof please? All AMAs require proof.
added that in to OP
taramasu0 karma 2013-11-13 09:28:00 UTC
help me! how can i better this? http://yaynoway.weebly.com/
not at all sure what you mean? what are you trying to improve/ change?
Keep in mind I'm not at all a web designer
what do you think i should add? is it stupid already?
Well I have no idea what it's for or what you're trying to do with it. Seems like a blog where you're asking people to comment on stuff? Why would people bother posting there instead of just posting to reddit or creating their own blog?
well im trying to make it to where people can create there own blogs. or post on blogs that are already made...
Is it an original blog system? I thought I was just looking at a standard create-your-own blog site that you have made an account on.
If it's original, you need to ask yourself some fundamental questions:
1) why would someone use this over something that's proven / already out there
2) will existing sites just copy any new ideas you have
yes. im trying to create my own blog-site type deal.. and, if i do think of really original things, is it a good thing if i think other sites will copy it?
It's possible to displace industry leaders, but it takes a really solid idea, lots of hard work, and you still might get screwed.
You should read up on the stories / biographies of people that have been successful at displacing industry leaders.
Even if you don't displace the leaders, you can still grab a chunk of business if you offer a solid product and treat your customers well. I don't use many blog sites, so I can't really comment on standard features.
Chiner-3 karma 2013-11-13 10:27:14 UTC
How do you sleep at night?
why should I have trouble sleeping? for all that zynga games annoyed a lot of people, they were also enjoyed by a lot of people.
I was also primarily involved in fixing the game when it broke and in fixing bugs & performance problems when it wasn't broke, so I wasn't really involved with some of the stuff I now know about and find distasteful. I had a moment where I was testing out Farmville 2 and saw a certain feature, declared "that's bullshit", wrote an (sorta angry) email to the CEO, and turned in my 2 weeks notice a couple weeks later.


The difference in areas under the ROC curves compares two or more diagnostic tests.
It is imperative when comparing tests that you choose the correct type of analysis dependent on how you collect the data. If the tests are performed on the same subjects (paired design) the test results are usually correlated. Less commonly, you may perform the different tests on different groups of subjects or the same test on different groups of subjects, and the test results are independent. A paired design is more efficient and is preferred whenever possible.
A point estimate of the difference between the area under two curves is a single value that is the best estimate of the true unknown parameter; a confidence interval indicates the uncertainty of the estimate. If the tests are independent, the confidence interval is computed using the combined variance of the curves and a large sample Wald approximation. If the tests are paired, the standard error incorporating the covariance (DeLong et al., 1998) and a large sample Wald approximation is used.
The null hypothesis states that the difference is equal to a hypothesized value (usually 0), against the alternative hypothesis that it is not equal to the hypothesized value (usually 0). When the test p-value is small, you can reject the null hypothesis and conclude the difference is not equal to the hypothesized value (usually 0, the tests are different).
The null hypothesis states that the difference is less than a lower bound of practical equivalence or greater than an upper bound of practical equivalence, against the alternative hypothesis that the difference is within an interval considered practically equivalent. When the test p-value is small, you can reject the null hypothesis and conclude that the tests are equivalent.
The null hypothesis states that the difference from a standard test is greater than the smallest practical difference against the alternative hypothesis that the difference from the standard test is less than the smallest practical difference. When the test p-value is small, you can reject the null hypothesis and conclude that the test is not inferior to the standard test.
When the ROC curves cross, the difference between the AUC does not provide much useful information.
Hanley, J. A., & McNeil, B. J. (1983). A method of comparing the areas under receiver operating characteristic curves derived from the same cases. Radiology, 148(3), 839-843.


text: Q: Android images increase APK size I am developing an android app which has many icons and full screen size images. Due to using different densities of  icons and images app size increased. Now i am using vector drawable for icons. So, icons size problem is gone. I read vector drawables are not suitable for full screen images, So, what i do for full screen images for reduce the apk size.

redpajama_set_name: RedPajamaStackExchange


Please take a few minutes from your busy schedule to provide us your valuable feedback.
How do you rate the material quality of our stalls ?
How do you rate the look & aesthetics of our stalls ?
How do you rate the design quality & aesthetics of the branding done by us ?
Have you ordered for any modifications / extra materials during the Exhibitors meet on 12th September 2017 ?
Were these modifications done in time ?
Have you ordered for any modifications / extra materials / extra materials after 13th September 2017 ?
Were these modifications communicated later done in time ?


text:
#include "shrpx_accept_handler.h"

#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif // HAVE_UNISTD_H

#include <cerrno>

#include "shrpx_connection_handler.h"
#include "shrpx_config.h"
#include "shrpx_log.h"
#include "util.h"

using namespace nghttp2;

namespace shrpx {

namespace {
void acceptcb(struct ev_loop *loop, ev_io *w, int revent) {
  auto h = static_cast<AcceptHandler *>(w->data);
  h->accept_connection();
}
} // namespace

AcceptHandler::AcceptHandler(const UpstreamAddr *faddr, ConnectionHandler *h)
    : conn_hnr_(h), faddr_(faddr) {
  ev_io_init(&wev_, acceptcb, faddr_->fd, EV_READ);
  wev_.data = this;
  ev_io_start(conn_hnr_->get_loop(), &wev_);
}

AcceptHandler::~AcceptHandler() {
  ev_io_stop(conn_hnr_->get_loop(), &wev_);
  close(faddr_->fd);
}

void AcceptHandler::accept_connection() {
  sockaddr_union sockaddr;
  socklen_t addrlen = sizeof(sockaddr);

#ifdef HAVE_ACCEPT4
  auto cfd =
      accept4(faddr_->fd, &sockaddr.sa, &addrlen, SOCK_NONBLOCK | SOCK_CLOEXEC);
#else  // !HAVE_ACCEPT4
  auto cfd = accept(faddr_->fd, &sockaddr.sa, &addrlen);
#endif // !HAVE_ACCEPT4

  if (cfd == -1) {
    switch (errno) {
    case EINTR:
    case ENETDOWN:
    case EPROTO:
    case ENOPROTOOPT:
    case EHOSTDOWN:
#ifdef ENONET
    case ENONET:
#endif // ENONET
    case EHOSTUNREACH:
    case EOPNOTSUPP:
    case ENETUNREACH:
      return;
    case EMFILE:
    case ENFILE:
      LOG(WARN) << "acceptor: running out file descriptor; disable acceptor "
                   "temporarily";
      conn_hnr_->sleep_acceptor(get_config()->conn.listener.timeout.sleep);
      return;
    default:
      return;
    }
  }

#ifndef HAVE_ACCEPT4
  util::make_socket_nonblocking(cfd);
  util::make_socket_closeonexec(cfd);
#endif // !HAVE_ACCEPT4

  util::make_socket_nodelay(cfd);

  conn_hnr_->handle_connection(cfd, &sockaddr.sa, addrlen, faddr_);
}

void AcceptHandler::enable() { ev_io_start(conn_hnr_->get_loop(), &wev_); }

void AcceptHandler::disable() { ev_io_stop(conn_hnr_->get_loop(), &wev_); }

int AcceptHandler::get_fd() const { return faddr_->fd; }

} // namespace shrpx

redpajama_set_name: RedPajamaGithub


Baroness Hollis of Heigham: The pensions commissioner.
Baroness Noakes: I beg your pardon. I meant the new pensions commissioner—the position being taken up by Mr Adair Turner. How transparent will the advice given to Ministers be? How is that position independent, given that Mr Adair Turner appears to be well entrenched, at least in Number 10?
Baroness Hollis of Heigham: My Lords, I cannot give the noble Baroness the statistics that she wants about the 60:40 per cent or 40:60 per cent point. I cannot say what the situation will be in 10 years' time. That will depend on what happens with the take-up of stakeholders, with the pension credit and the like. I emphasise that that is the direction in which we wish and seek to move .
I resent being told that I am complacent about DB schemes. I said—I am sorry that the noble Baroness did not hear me—that if DC schemes attracted as much investment as DB schemes, the return over time for the person in the funded scheme should be broadly the same. I complained that employers too often took the opportunity to move from DB to DC schemes, not just to reduce risk but to cut contributions by more than half. If that is being complacent, the noble Baroness and I attach rather different meanings to the word.
The noble Baroness talked about the insurance commissioner. I am not sure whether she was talking about the new pensions regulator or the new commission that will be headed, possibly, by Mr Adair Turner, the name that the noble Baroness mentioned. It will be independent, in the sense that it will seek to embrace sections of the industry, including—I hope—the trade union movement. It will make recommendations to the Secretary of State about the adequacy, reach and coverage of voluntary provision. In the light of that information, it is open to the Secretary of State, if he is not satisfied—and to Parliament—to return to the issue of compulsion, raised from the Liberal Democrat Benches.
"With permission, Mr Speaker, I should like to make a Statement on transport investment.
public and private investment—over a 10-year period. It is an unprecedented commitment, providing stability and increasing spending over the long term. And maintaining that investment year on year is essential to make up for decades of under-investment and neglect.
"Over the 10-year period, this means public expenditure of over �22 billion on strategic roads; �33 billion on the railways and �51 billion on local transport. The plan is the first time ever that a Government have been willing to commit themselves to such a level of funding over a long period. And that funding is making and will continue to make a difference.
"If you look at other countries successes in transport the common factor is sustained investment, year on year and decade after decade. That is why we remain committed to updating and rolling forward the plan in 2004 to coincide with the next public expenditure review. And that review will take account of progress so far and challenges that will have to be met in the years to 2015 and beyond. Such long-term commitment and planning is essential if we are to rebuild and maintain the transport infrastructure we need for continued growth and prosperity.
"This report sets out what has been achieved in the first 18 months since the plan came into effect. As I told the House last week, our objective is to improve Britain's rail and road network. It is a balanced approach, with investment to tackle congestion, improve reliability and make journeys safer. And to do so in a way that is consistent with our wider social and environmental obligations.
"I want to set out some of the key points. Last week, I announced major investment designed to tackle congestion and improve journey times. Schemes will range from major enhancements on some of our key strategic routes, for example the M1 and M6, as well as bypasses and smaller schemes to tackle bottlenecks. We have also introduced measures to better manage existing roads. I also announced further investment in local transport and light rail.
"As the report makes clear, the latest analysis shows that there was more traffic in 2000 than had been thought. That, coupled with the fact that economic growth over the next 10 years is now projected to be higher than anticipated, means that the forecasts made two years ago almost certainly underestimated the future levels of congestion we are faced with.
"Without the investment in the 10-year plan, congestion would have continued to rise unchecked. The report shows that not only will we stem that growth, but deliver considerable reductions in the levels of congestion we would otherwise have seen. In order to tackle congestion, it is necessary to tackle its causes. That is why we are spending more to deal with bottlenecks on the roads system and spending more on public transport.
"Measures to tackle congestion are beginning to make an impact. Bus use nationally has begun to grow after years of decline and stagnation. Light rail use has grown by a third over the past two years. The number of rail passengers has increased by nearly a quarter since 1997.
"We need to do more. All this will only be possible because of the commitment to sustained investment year-on-year, and I shall be announcing further measures next year. The House will also wish to know that there has been a 15 per cent reduction in deaths and serious accidents on the roads. And for children, there has been a 27 per cent reduction, which is a tribute to all those who have done so much to improve road safety.
"On the railways, public expenditure is now estimated to be �33 billion compared to �29 billion 18 months ago. We are committed to sustaining this investment as it is essential to improve both reliability and safety. But it is also essential that the industry gets a grip of major projects. The public rightly expect us to ensure that their money is well spent and that there is rigorous control of costs.
"Spending in the next few years will rise from �2.1 billion in 2001–02 to �4.3 billion in 2005–06, which, although �312 million less for the Strategic Rail Authority over the coming three years than was forecast earlier this year, is double what was being spent at the start of the plan. This investment will only deliver results if costs in the industry are brought under control. That is why Richard Bowker, the Chairman of the SRA, is quite right to insist that the railways industry gets a proper grip on its costs—something that was conspicuously absent in the past.
"As I have said, the report shows that the railways are carrying nearly a quarter more people than 5 years ago. But we will only sustain that increase in use if we can show that the service is better and, crucially, more reliable. That needs more investment, but also better management of the existing network, which is what the SRA is providing. That is why the SRA is carrying out a review to make sure that the best use is made of existing railway capacity, that projects are more tightly managed and that costs are driven down.
"As the report shows, there is now significant public investment going into the West Coast Main Line which will allow greater reliability. But only because the SRA and the industry showed its determination to exercise rigorous control of the project and its costs.
power supply for London commuter trains has been upgraded. There has been more maintenance and more renewals.
"There has been investment, yes. But, just as elsewhere, with investment must come reform. Every one of us knows that standards on our railways can be improved. This report shows that we are prepared to spend more, but in return the railway industry has to do far more to drive up standards and reliability. Our priority is to deliver safe and reliable transport that enables people and goods to move around the country as easily and efficiently as possible.
"This plan sets out the investment to achieve that over a 10-year period. There are no quick fixes or easy solutions. Sustained investment is needed year on year and over many decades. We are committed to the long haul, to that sustained investment and improvements in services essential to our continued economic and social prosperity".
Viscount Astor: My Lords, I thank the noble Lord for repeating the Statement. The report is called the "progress report". I have had a brief look at it and I have to say that perhaps it should be called the "lack of progress report". It represents the final nail in the coffin of John Prescott's 10-year transport plan. That plan is falling apart. Congestion is increasing; one in five trains is delayed; the Tube is in chaos and nationally bus use is falling. Even the Labour-dominated Transport Select Committee has condemned the plan as failing to provide a vision for a more equitable, safer and efficient transport system.
A recent survey comparing us with Europe noted that the average British worker spends twice as long travelling to work in the morning as even his Italian counterpart. In the South East, we are faced with rail fare rises of up to 10 per cent. There will also be fewer trains. The excuse made by the Government and the Secretary of State is that having fewer trains might be more reliable. At the moment, we have a thoroughly illogical system. How can we possibly have a situation where Connex is fined �4.5 million one week for delays, and the following week is handed back �58 million because it is short of cash? That is extraordinary.
I hope that the Government will persuade the Strategic Rail Authority to look at the terms on which the train operating companies have their licences renewed because the basis of making the licences short term is obviously having a major effect on the plans of those companies. Train operating companies have been a successful part of rail privatisation. The noble Lord knows—indeed, the Statement says—that passenger use has increased by 25 per cent since 1997.
that train services could be cut by up to one-fifth next year and that train operating companies have been told to produce plans to run railways on 20 per cent less taxpayer subsidy. Richard Bowker, the Chairman of the SRA, has warned that the �33 billion promised over 10 years is running out and that expansion projects will have to be put on hold. He has admitted that many projects will have to be scaled back.
To cap it all, the Government have announced an airports policy which will have to go back to square one. They lost a case in the High Court, in which the judge decided that it would be wrong to exclude Gatwick from the airport expansion consultation.
Costs in the rail network have soared. Indeed, more money is being pumped into the industry now than under British Rail, but in many areas performance has deteriorated.
The Government promised that they would tackle congestion and improve journey times for motorists. In fact, statistics show that car use has increased and that congestion has worsened. What is more, congestion has risen at a substantially higher rate—probably 10 times higher—than the rise in employment in this country. Highways Agency figures show that not one inch of new bypass was built anywhere in 2001. The Government cancelled bypass programmes when they came into power.
Turning to London Underground, the PPP has still not started this month and the Secretary of State has said that the transfer of London Underground to Transport for London could be delayed by many months.
The Minister's department comes up with surprising excuses. Today, I noticed that a spokesman cited the slow take-up by local authorities of the option of introducing congestion charges as one of the reasons for the continuing jams on major routes. I find that extraordinary. Perhaps the noble Lord will confirm that that is the department's policy. The introduction of congestion charges might affect congestion in cities, but the idea that it affects major routes is rather bizarre.
"economic growth over the next 10 years is now projected to be higher than anticipated".
I ask: anticipated from when? Perhaps the Minister could explain how that forecast came about.
The Government have made many promises, including another promise of funding for 10 years. However, we know that that is a plan, not a commitment. The dead hand of the Treasury hangs over that and it has no such thing as a 10-year commitment. It has only a short, two or three-year commitment.
plan. It is an admission that the department and the Secretary of State, Mr Darling, have finally joined the real world.


text:
Q: How to obtain SQL feature list from the command line Is there a command at the CLI or in PowerShell that will list the components installed for SQL?  I'm looking for something like the Feature List you can get from running the discovery report from Tools in the SQL Server Installation Center program option.
I'm running SQL Server 2012 on the CORE version of Windows Server 2008 R2 Enterprise.  I've searched around the Net, but haven't found anything useful.

A: The components for SQL Server 2012 are divided by server and then management tools. You can get the server level components by using a PowerShell command like:
Get-Service *SQL*

To get the management tools would require either registry search for the uninstall list or you can query the WMI class win32_product:
get-wmiobject win32_product |
where {$_.Name -match "SQL" -AND $_.vendor -eq "Microsoft Corporation"} |
select name, version


Go on a breath-taking treasure hunt with Vikings' Voyage!
This video slot features splendid bonus games, handsome jackpot sums, and plenty of pleasure. The slot is attractive artistically, which is another plus every time you play the Playtech slot. Make the first bet and get on the Vikings' boat.
Every payline is activated with one coin. Overall, with twenty paylines and the maximum cost of $5 for a coin, your highest bet can be as high as $100! Your quest for Scandinavian treasures will not take too long a time; however, during your sea voyage you will still be able to collect some prizes with the help of card symbols.
Although they have little worth, their frequency cannot but please you, adding to your gain.
As the evening descends, the Vikings start to feast. You will have plenty of fun if you join them and make a combination of Cup and Coin symbols. These two will bring you 500 and 1,000 coins correspondingly.
Before trying to free the beauty from the dungeon, your Viking squad needs to get armed. The Axe symbols will come in handy.
The winning combination of these will bring you several thousand coins! Now, be ready to fight for the princess. The winning combination of five Princess symbols means that you've just won the minor jackpot of the video slot.
The captain of your longboat, the brave Viking, will help you complement winning combinations. After all, he represents the wild symbol of the game! The longboats, floating across the screen, are the scatters. Besides, they can activate bonus games, where you can get ten free spins or become the boss of the reels. Vikings' Voyage invites you to embark on a fabulous journey filled with danger and precious rewards. Join in!


Cherokee Filtered Cigars offer the same great taste of Cherokee pipe tobacco, in a convenient, ready to smoke, package.
Dean's Large Cigars are skillfully blended for an extremely mild smoke & light aroma. They come in seven exciting flavors sure to please the smoker looking for a nice sweet tasting and pleasant cigar.


Please take a look at the list of information and links below to find specific contact information for individuals or committees. If you can't find the contact information you are seeking or have a general question for the league, email info@rollerdollz.com.
Visiting Skaters are welcome, please email our Coaching Committee!
Interested in joining our league as a skater?
Interested in joining our league as a Skating Official?
Interested in joining our league as a Non-Skating Official?
Interested in volunteering with our league?


text:
Q: clip-path does not work with chrome I have problem with clip-path in Chrome. Firefox has no problem and shows this html page correctly, but chrome doesn't show anything.

img {
  -webkit-clip-path: url(#clipping);
          clip-path: url(#clipping);
}
<svg>
  <defs>
    <clipPath id="clipping">
      <circle cx="284" cy="213" r="213" />
    </clipPath>
  </defs>
</svg>

<img src="http://i.stack.imgur.com/MnWjF.png" width="728" height="482" >

A: Webkit does not support applying an SVG clipPath to an html image. If you make the image an SVG image i.e. change the tag to <image> and put it inside the <svg> element then it will work.
Firefox does support applying an SVG clipPath to an HTML image which is why it works there.
Here's an example courtesy of Pancho.
<svg width="245" height="180" viewBox="0 0 245 180" >
    <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="something.jpg" width="245" height="180" class="MyClipping" ></image>
</svg>

A: Until now (Jan/2021) Crome seem to not support "*-box" options, i.e. border-box, but supports functions like polygon, etc.


Carrot Muffins have the look and flavor of a carrot cake only they are in muffin form. The original name for these muffins was 'Morning Muffin Magic' but you may also know them as 'Morning Glory Muffins'. These cinnamon scented muffins are nice and moist and are loaded with flavorful ingredients; things like toasted nuts, sweetened coconut, grated apple, and grated carrots. Although these muffins need no adornment, sometimes I can't resist smearing them with a little cream cheese icing.
The pitfall with all muffin batters is in over mixing the batter and ending up with a tough muffin. So make sure you only mix the batter until the ingredients are combined and moistened. A few flecks of flour are fine. To make the job easier, plus to give the baked muffins a nice doomed shape, use an ice cream scoop to fill the muffin cups. Of course, if you do not have one, two spoons will do the job. As always, if you want standard sized muffins, only fill the muffin cups 2/3 full with batter. However, if you like your muffins with a crown, fill the cups almost to the top. Just make sure to grease the top of the muffin pan so that as the batter overflows it does not stick to the top of the pan. And don't forget to fill any unfilled muffin cups with a little water to ensure even baking as well as preventing the pan from warping.
Carrot Muffins: Preheat oven to 350 degrees F (180 degrees C) and place rack in center of oven. Place paper liners in 12 muffin cups.
In a large bowl whisk together the flour, sugar, baking soda, baking powder, salt, and ground cinnamon. Stir in the nuts and coconut.
In a separate bowl whisk together the eggs, oil, and vanilla extract. Fold the wet ingredients, along with the grated carrot and apple, into the flour mixture, stirring just until moistened. Evenly divide the batter between the prepared muffin cups and bake for 20 - 25 minutes or until a toothpick inserted in the center comes out clean.
Remove from oven and let cool on a wire rack. After about 10 minutes remove the muffins from the pans and cool completely on a wire rack before frosting.
Frosting: Beat the butter and cream cheese until very smooth with no lumps. Gradually beat in the powdered sugar until fully incorporated and smooth. Beat in the vanilla extract.
Place a dollop of the cream cheese frosting on the top of each muffin.


AEP Ohio, an American Electric Power (NYSE:AEP) recently announced Gallia County Economic Development as one of fifteen economic development organizations across Ohio awarded a Local Economic Assistance Program (LEAP) grant. Awarded annually since 2005, AEP Ohio's LEAP grants provide funding to help local communities grow with a focus on retaining and expanding manufacturing jobs.
Gallia County Economic Development will utilize the LEAP funds to implement the use of a customer relationship management (CRM) program, designed especially for economic development users. The database and communications tool will assist to facilitate business retention and attraction efforts creating a more efficient and effective way of communicating, partnering, and achieving economic success in Gallia County.
The following 15 local economic development organizations will receive a LEAP grant in 2018.
AEP Ohio is based in Gahanna, Ohio, and is a unit of American Electric Power, AEP Ohio provides electricity to nearly 1.5 million customers. News and information about AEP Ohio can be found at AEPOhio.com.
Kentucky Power, Public Service Company of Oklahoma, and Southwestern Electric Power Company (in Arkansas, Louisiana and east Texas). AEP's headquarters are in Columbus, Ohio.


text:
1862 McHenry County Sheet Map - Adopted
Home » 1862 McHenry County Sheet Map - Adopted
This hand-colored and engraved 47-by-62 1/2-inch map was compiled and published by M.H. Thompson & Brother (Dundee,Ill.) and lithographed by Charles Shober (Chicago) in 1862.
It is the first commercial sheet map of McHenry County.
This map documents the early history of the county by showing views of businesses, residential and public buildings. It also lists county officers, board of supervisors and shows land ownership in every township.
The Historical Society has two original 1862 maps of McHenry County in its archive collection. The more pristine copy is preserved and not for public use. The adoptable copy was available to archive researchers and genealogists until its poor condition restricted its use. Once properly restored, it will be available again to be utilized by patrons of our research library.
The 1862 map currently has missing areas, including loss of color which need to be reproduced and conformed to the map. The acidic materials need to be removed from the paper to slow further deterioration. Overall, the paper is fragile, needing reinforcement with Japanese Tissue backing. Once repaired, the map will be encapsulated in Mylar to protect the surface from further damage.
ADOPTED BY THE MARENGO SOCIETY FOR HISTORIC PRESERVATION
View More Images:
Endangered Artifacts
← Return to Adopt An Artifact
1928 Seagrave Fire Engine
John Brink Survey Notebooks
Tryon plat book
1914 Crystal Lake Train Station Bench - adopted
Victorian Parlor Settee

redpajama_set_name: RedPajamaCommonCrawl


text:
package net.kuujo.copycat.io.transport;

import net.jodah.concurrentunit.ConcurrentTestCase;
import net.kuujo.copycat.io.serializer.Serializer;
import net.kuujo.copycat.io.transport.Client;
import net.kuujo.copycat.io.transport.NettyTransport;
import net.kuujo.copycat.io.transport.Server;
import net.kuujo.copycat.io.transport.Transport;
import net.kuujo.copycat.util.concurrent.Context;
import net.kuujo.copycat.util.concurrent.SingleThreadContext;
import org.testng.annotations.Test;

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;

/**
 * Netty transport test.
 *
 * @author Jordan Halterman
 */
@Test
public class NettyTransportTest extends ConcurrentTestCase {

  /**
   * Tests connecting to a server and sending a message.
   */
  public void testSendReceive() throws Throwable {
    Transport transport = new NettyTransport();

    Server server = transport.server(UUID.randomUUID());
    Client client = transport.client(UUID.randomUUID());

    Context context = new SingleThreadContext("test-thread-%d", new Serializer());

    context.executor().execute(() -> {
      try {
        server.listen(new InetSocketAddress(InetAddress.getByName("localhost"), 5555), connection -> {
          connection.<String, String>handler(String.class, message -> {
            threadAssertEquals("Hello world!", message);
            return CompletableFuture.completedFuture("Hello world back!");
          });
        }).thenRun(this::resume);
      } catch (UnknownHostException e) {
        threadFail(e);
      }
    });
    await();

    context.executor().execute(() -> {
      try {
        client.connect(new InetSocketAddress(InetAddress.getByName("localhost"), 5555)).thenAccept(connection -> {
          connection.send("Hello world!").thenAccept(response -> {
            threadAssertEquals("Hello world back!", response);
            resume();
          });
        });
      } catch (UnknownHostException e) {
        threadFail(e);
      }
    });
    await();
  }

}


text:
@brendaleadlay
Brenda Leadlay
Brenda is the Executive Director of the BC Alliance for Arts + Culture in Vancouver where she advocates for the arts.
Brenda Leadlay is the Executive Director of the BC Alliance for Arts + Culture with a professional theatre career that spans over 35 years as an actor, creator, director, dramaturge, educator and producer. Before moving back to Vancouver in 2016, she spent 5 years in Ottawa as the Artistic Executive Director of the Magnetic North Theatre Festival at the National Arts Centre. Previous to that, she was the Artistic and Managing Director of Presentation House Theatre and The Norman Rothstein Theatre as well as the founder of The Chutzpah Festival. Brenda also served as the Artistic Director of Tamahnous Theatre from 1993 to 1996 and has been nominated 3 times for Jessie Richardson awards for her work as a director and collaborator. Brenda has an MFA in directing from UBC.


text:
Shemini 5778
Life is sometimes filled with contradictions. The author of the ethical tract Paths of the Righteous points out, for example, that love can be the greatest virtue when expressed appropriately or the greatest vice when expressed inappropriately (Gate 5). Parents love their children and that love is indispensable to developing self-esteem and good character. But when parents fail to correct and reprimand their children because they love them too much to punish them, then their love will ultimately prove harmful. Similarly, love of money can engender healthy competition among people. But that same love of money may compel a competitor to adopt dishonest practices. The same powerful emotion can yield diametrically opposite results.
This insights was noticed long before it was articulated by the moralist author of Paths of the Righteous. In juxtaposed passages, the Torah gives an example of how the same thing can be the source of opposite reactions. The investiture of the priests to serve in the Tabernacle was completed on the eighth day. At that time the altar was used initially for the performance of sacrificial rites on behalf of the people Israel. But the inaugural offering was not consumed by fire lit by human hands. Fire came forth "from before God" (Leviticus 9:24) to consume the sacrifice. Supernatural fire is cause for rejoicing. Two verses later (Leviticus 10:2) Scripture narrates another instance of fire coming forth from God. However, this second instance was cause for lamenting. Committing a serious offence, Nadav and Avihu, Aaron's eldest sons, were burned to death. In the first instance, divine fire brings exultation. In the second instance, divine fire is a source of bereavement. The same divine fire cause opposite reactions.
One chapter later the Torah emphasizes the point that when water touches seeds it renders them susceptible to impurity (Leviticus 11:38). But when water is applied to the impure, it relieves impurity (Leviticus 14:8, 9). The same water that putrifies, purifies. The same element can cause opposite results.
What seems to emerge from all of this is that everything in life is potentially beneficial or harmful, depending upon circumstances alone. Fire can create or destroy. Rains can nurture or erode. Money can sustain or corrupt. Every element, every emotion, every action can be the source of good or bad. This certainly makes for confusion. But that is the nature of life.


During some Bologna's Fair events our rates may run higher: up to 105 € for a double and 85 € for the single.
These rates include a full breakfast.
We can provide organic breakfast upon request.
Daily cleaning of the room is included. Bed linen are changed twice a week.


On Monday, Arthur J. Gallagher & Co. (NYSE: AJG) shares price traded between $65.96 and $66.83 during the last trading session downbeat with -0.54% at $66.38. The shares recorded trading volume 959,980 shares as compared to its average volume of 956,979 shares. The company has 182.27M shares outstanding and market value of 12.099B. Over the one year trading period, the stock has a peak price of $72.77 and its down is recorded at $56.20.
Arthur J. Gallagher & Co. (AJG) recently stated its financial results for the quarter ended March 31, 2018. Management will host a webcast conference call to discuss these results on Tuesday, May 1, 2018 at 5:15 p.m. ET/4:15 p.m. CT. To listen to the call, and for printer-friendly formats of this release and the "Supplemental Quarterly Data" and "CFO Commentary," which may also be referenced during the call, please visit ajg.com/IR. These documents contain both GAAP and non-GAAP measures. Investors and other users of this information should read carefully the section entitled "Information Regarding Non-GAAP Measures" starting on page 8. A new revenue recognition accounting standard was adopted as of January 1, 2018, using the full retrospective method to restate each previous reporting period presented.
Interest and banking costs and debt – At March 31, 2018, Gallagher had $2,798.0M of borrowings from private placements, $360.0M of short-term borrowings under its line of credit facility and $121.0M outstanding under a revolving loan facility that provides funding for premium finance receivables, which are fully collateralized by the underlying premiums held by insurance carriers, and as such are excluded from our debt covenant computations.
Clean energy – Consists of the operating results related to our investments in 34 clean coal production plants and royalty income from clean coal licenses related to Chem-Mod LLC. Additional information regarding these results is accessible in the "CFO Commentary" at ajg.com/IR.
Acquisition costs – Consists mostly of external professional fees and other due diligence costs related to acquisitions.
Corporate – Consists of overhead allocations mostly related to corporate staff compensation and other corporate level activities.
Litigation Settlement – During the third quarter of 2015, Gallagher settled litigation against certain former U.K. executives and their advisors for a pretax gain of $31.0M ($22.3M net of costs and taxes). Incremental expenses that arose in connection with this matter resulted in quarterly after-tax charges being incurred through June 30, 2017. No such charges were incurred in this section in the first quarter of 2018.
Home Office Lease Termination/Move – During first quarter 2017, Gallagher relocated its corporate office headquarters to a nearby suburb of Chicago. No such charges were incurred in this section in the first quarter of 2018.
Impact of U.S. Tax Reform – In the fourth quarter of 2017, new tax legislation was enacted in the U.S., which among other changes lowered the U.S. corporate tax rate from 35% to 21% effective January 1, 2018. The ultimate impact of the new tax legislation will likely differ from our estimates made in fourth quarter of 2017,Because of, among other things, changes in interpretations and assumptions Gallagher has made or additional regulatory or accounting guidance that may be issued with respect to the new tax legislation.
Gallagher allocates the provision for income taxes to its Brokerage and Risk Management sections using the local country statutory rates. Gallagher's consolidated effective tax rate for the quarters ended March 31, 2018 and 2017 was (18.0)% and (21.2)%, respectively, which was lower than the statutory rate Because of the amount of IRC Section 45 tax credits earned and the impact of the income tax benefit of stock compensation in the first quarter of 2018.


There are 1 My Birthday Song Posters available at songsuno.com. View & Download My Birthday Song Movie posters in poster gallary. To view all My Birthday Song poster in full resolution please click on particular poster. Also You can see about My Birthday Song Cast Posters like Sanjay Suri, Nora Fatehi, Zenia Starr, Pitobash Tripathy, Elena Kazan, Suparna Krishna, Sameer Sharma Poster in poster gallary.


To offer a new dimension of sophistication and service to the yachting lifestyle. From yacht sales and purchase to charter to management and marketing of the world's most discerning luxury vessels, our Company offers a total-service approach.
We always recommend best charter to suit your requirements. Our success has been lasting because our services have always been guided professionally and with a sense of responsibility to our customers.
2. Always at the Best Indusrty Price.
When you book with our Company, you'll be confident you're getting the best possible industry price. If you find the boat you booked at a lower price on a competing website within 24 hours of your booking, we'll refund the difference.
You can rest assured that throughout your trip, our Management and Staff are constantly available to take care of any issue that might occur. Direct phone or email contact is available to you 24/7.
4. Of course, your Satisfaction.
We believe in customer service and satisfaction, thus we are determined to continue in such a manner to meet the most demanding standards and quality. Our intention is to plan your cruise in the best possible way.


Our client is a successful, directory rated,highly profitable law firm based in Mayfair. The firm have a focus on commercial real estate but no dedicated property litigation fee earner and refer in the region of £200,000 per annum in fee income to other law firms in London. The firm are keen this work remains in house and are keen to recruit a senior property litigation lawyer to help them grow this area of their practice.
The firm act for household names in the real estate sector and so require a commercially astute and experienced fee earner with the ability to deal with heavyweight property litigation disputes.
You will either be an established partner seeking a new challenge or a senior associate who is ready for the step up to partnership.