text:
Frugal tomato supports
I'm growing a major expansion of my tomatoes this year. I'm planning to grow nearly 50 plants. All of them will be long, indeterminate vines. I prefer staking or trellising them, but I am finding that supports are getting awfully expensive for so many tomatoes. $5 for a tomato stake is one thing when you're growing ten plants, but quite another for 50. Can anyone suggest a more economical support?
If you are growing them in rows, look into WEAVING and stringing, both here in GW and YouTube.
Stakes, if you buy them individually, sold as "STAKE" can be expensive.
I buy 5/4" by 4" cedar boards and rip them and make my own stakes.
For example: buy a 10ft length (Cost ~~$6) and cut it into 2 pieces, 5ft each in the store,. Bring it home and rip it. I make 4 pieces of 5ft stakes, each costing $1.50. If You want 6ft long stakes, buy the 12ft long one and do as above. In that case each 6ft stake will cost about 2 bucks each. Another option is 5/8" REBAR. That will cost a little more but will last for ever. PVC is another option but it is not strong, you cannot drive it into ground easily, and it will deteriorate under sun and may bend or brake under weight and by winds. A 10' length of 1" diameter will cost more than cedar (as I described before). Any size less than 1" will be TOO weak.
So, there are options, method wise and cost wise.
Metal conduit is cheaper and easier to cut than rebar. A 10' length is about $2.xx at any big box store- you can cut to length with a tubing cutter. I use them as stakes to hold my tomato cages but you could probably use them as actual tomato stakes as well.
Agree that using one of the forms of Florida weave support would be the most economical by far. Some stakes and lots of string is all you need.
Cattle panel trellises would be my second choice. They average $20 for a 16' long panel and if you stagger plant the plants and use both sides of one panel and do some pruning you might get 16-18 plants on one panel (depending on the varieties and types). Not ideal plant spacing but fairly good.
Hauling them home is the problem with them but once you get them they last forever.


text:
Fireplace Makeover: Tiling The Mantel With Marble Herringbone
With our fireplace refacing plan all worked out, and our supplies waiting at the ready, it was time to dive into step 1: TILE! Oh but first we had a lot of questions about our potential future plans to double side the fireplace, but that's just not in the budget right now. It's a load bearing wall so we'd need an engineer and a mason, so maybe down the line we can tackle that. But it won't hurt this project since we can go in from the back when we do. So there will be no marble tile harmed in the making of a double sided fireplace if we get there someday. And then we'd love to add a double sided gas insert. Hotness, amIright?
But back to TILE!
In case my sketch above is still indecipherable to everyone but me, I highlighted the areas of the photo below that are going to get the tile treatment. The tile border is only about 7 inches wide because the rest of the brick is going to get framed out with wood and MDF (which will layer on top of the tile, hence doing tile first). Oh but it's smart to check the code in your area to make sure your wood surround isn't too close to your firebox (ours calls for at least 6″ of tile and then the wood surround can start). And no, the tile is not going to be grellow. Ha!
If you recall, the tile we picked out was this marble subway found at Home Depot for a little over $5 per square foot.
But before we could start slapping tile everywhere (that's a technical description, btw) we had to create a smooth surface on which to attach them. So we bought some 1/4″ cement board and we used the old
bend score and snap method to cut it into strips. Then, thanks to some heavy duty masonry screws and a cheap masonry bit for our drill, we attached them to the fireplace. It was quite a dusty process, and it helped to have four hands around for it (Sherry would hold while I drilled and vice versa).
Oh yeah, and it was around this point that we realized we probably should clear off everything sitting on the fireplace mantel so that all of our drilling didn't send anything down on our heads. Plus I'm not going to lie, if I directly (or even indirectly) sent one of those ceramic houses on the mantel crashing to the floor, the lady wife would not be pleased (I have sort of a bad track record when it comes to things like that).
So after we cleared things off the mantel and ripped off the old wood top while we were at it (demo-ing things fully before tiling is always smart) it was back to tile prep. For the bottom hearth portion, I actually just squeezed out a whole bunch of heavy duty construction adhesive, laid down my pieces of cement board and then stacked some heavy storage ottomans (of which we have plenty around here) to hold them securely in place overnight (I later added a few screws at the corners just to reinforce them).
The nice thing about adhering the cement board right over the old hearth instead of demoing it out first was that because we added the cork floor right over our previous linoleum one (due to not wanting to disturb an asbestos liner underneath) we still had room to add cement board and tile without it bumping up and being oddly raised (in fact it brought it back to being aligned).
So here's the fireplace all set and ready for actual tile.
Well, not totally all set and ready. We wanted to protect our cork floors before getting into the thinset-and-grout-y mess of a tiling project, so we quickly taped down some protective rosin paper leftover from our last kitchen tile project.
We also took the time to lay out our tile beforehand. At Bryn's suggestion, we bought a few extra boxes than we needed, just to account for overage and so we could pick out any weirdly chipped or discolored ones. Thankfully there weren't many broken or otherwise wonky tiles, so I'd say that we used 90% of the tile we bought, and only returned 10% as overage tile (which is a pretty normal percentage – and Home Depot is happy to take it back).
It was a smidge tedious to lay it all out, but it was great because we could begin to see how they'd come together and even do things like space out the veining (so there was a nice mix of both instead of all of the dark veining ending up on one side of the hearth and all the lighter tiles on the other side). And in the interest of using as many tiles as we could without being super picky, we also made a pile of "why-is-this-one-weird-or-chipped-on-one-side?" tiles to use for the smaller cut pieces that we'd need (we could slice off the weird/bad parts for many of the edge tiles anyway).
And as you can see from the angled cut that I'm marking below – we decided to go for a herringbone pattern on the hearth mixed with a traditional brick-layers pattern on the fireplace surround (we held them up a few ways and liked that configuration best). Update: we're getting requests for more info on why we chose that combo, so here ya go… with so little surface area (just 7″ showing around the firebox) it wouldn't really establish the pattern enough (we thought it would look like random and busy half-zigs and half-zags without enough of the tile showing to look like chevron). So we held it up both ways and liked the simpler pattern for the smaller area, just because we didn't think it would look as chaotic.
And thank goodness we own this triangle square…
It was a lifesaver since basically every single cut for the hearth was on a 45-degree angle. And after cutting tons of crown molding on all sorts of angles, I gotta say that this was much simpler. Anyone can do this. Yes, even you scared-of-tiling folks out there. It's really not that bad. I promise.
We made all of our cuts with our wet saw (one of my favorite tools) and it was fairly easy. The only challenge was that the marble was a bit brittle so sometimes the corners broke off as I got to the end of a cut. But I didn't lose too many tiles in the process, so it was actually a lot easier to work with than penny tile (we had a much higher learning curve when it came to cutting that).
Once we had a few of our initial pieces cut, we mixed up some thinset (still leftover from penny tiling – woot!) and started slapping down some tile. Again, that's a technical term.
I realize I'm glossing over some of the details of the actual tiling process. But we've covered it so extensively in the posts below (including video) that I thought sharing those links made the most sense. So for this project just trust us that it went along pretty much the same way unless otherwise noted in this post.
- Here's how to hang cement board
- Here's how to install penny tile (including video)
- Here's how to grout penny tile (including video)
- Here's how to de-haze & sealing tile
- Here's how to install a subway tile shower & marble floor (including an extremely detailed supply list)
Once we had the pattern started it was a pretty mindless process, it just took a long time because there were so many cuts involved in such a small space. But it was pretty straightforward (it was one of those just-keep-going tasks that didn't involve much problem solving once we got the hang of it). I'd guess that it took us a good four hours to get the bottom portion done (although it was broken up by lunch plans with an old coworker, so it still ate up a good portion of day 1).
The next day during Clara's nap we attacked the top portion, which went significantly faster because the straight cuts were easier to do.
And since the outer edge was going to get covered by the MDF frame of our wood surround eventually, we didn't have to be sticklers for a clean edge. In fact, Sherry and I figured out a way to stagger the tiles so that we were able to reuse both sides of a cut, which made life much easier. See how the bottom row has a cut tile on the left? The other half of that tile is in the row above it (on the right). So they sort of staggered themselves up the wall, and we weren't creating tons of tile fragments that we couldn't use.
So by the end of day 2, we had all of our tile done. Yeehaw. (Oh, and that white strip of brick inside the fireplace is eventually going to get painted the same dark charcoal color as the rest of the firebox, so just ignore it for now – and of course we have trim pieces for the floor around the hearth so it'll be seamless and smooth in the end).
The next evening we got our grout on using some non-sanded grout from Home Depot in their Snow White color (it's not super white, sort of a very soft gray).
I don't know about you guys, but for some reason the transformation from un-grouted tile to grouted tile is super satisfying to me. Seriously. I could grout all day… well, if I had a bionic wrist.
As I shoved grout into joints, Sherry stepped in periodically with a slightly damp sponge to smooth everything and wipe off the excess. I'm still jealous of how clean she stayed.
Grouting took all of 45 minutes, maybe. And it left us with this beaut. Admittedly it still looks crazy without a built out mantel around it, but that's next on the agenda.
So we're excited to start building the surround, reconstructing the mantle, adding trim and molding, priming and painting, and eating a celebratory cookie (or twenty) when we're finally done.
Oh and we sealed all of the tile/grout after the grout-drying waiting period on the bottle (we had some leftover from the backsplash). Took ten minutes tops. Ending up with a completely re-tiled hearth and fireplace surround (in white marble, no less) feels like such an upgrade for only around seven hours of work (total), and the budget wasn't nearly as scary as "marble tile" sounds. Ha!
- Cement board (2 sheets): $16
- Masonry screws: already owned
- Liquid Nails Heavy Duty: $2
- Subway tile: $5.50/sq ft, totaling $70
- Thinset: Already owned
- Tiling tools (saw, trowel, float, etc): already owned
- Grout: $11
- Tile sealer: already owned
- TOTAL: $99 (*thanks to some holiday gift cards from the family, we actually only spent $49 – but without gift cards or already owned supplies this might be an $150 upgrade)
I think we're riding a herringbone high right now. Seriously. I'm so glad we decided to do that pattern. For some reason it makes me feel super fancy. Maybe we need to rename our house Downton Ranchy.
And maybe we should record a sequel to this SNL skit called "Marble Subway Tile."
Does anyone else have some good experiences with subway tile, a herringbone pattern, or tiling a fireplace in general to share? Have you purchased a marble column recently? Are you like "What is this, The White House??"
If you enjoyed this post, please leave a comment or subscribe to the feed and get future articles delivered to your feed reader.
333 Comments
looks wonderful. I love you both for your fearlessness. It's hard for me to tell,but just how much is the hearth raised up over the cork floor? I know you said it is aligned, but wouldn't the board and tile raise it up a half inch or so, or am I missing something? Thanks!
I love the herringbone tile! I just did that pattern with paint in our bedroom and it really does look fancy.
I love the hearth but some reason I thought you were doing the herringbone pattern on the fireplace as well. It's still great, but in my opinion, looks a little "blah" compared to the floor.
The house I lived in growing up had that horrible shattered brick-tile-esque floor area around the fireplace (it was also a very old house) as well and we always hated it. Too bad my parents didn't think of something like this because it looks great & I can't wait to see the finished product! I have a soft spot for beautiful/unique fireplaces!
Brilliant choice of tile by the way, especially with the herringbone pattern!
EXCELLENT = Agree with Downton Ranchy!!!!
What a gorgeous upgrade. For some reason tile intimidates me. We are planning to tile a bathroom this summer and I am already worried about it! You guys make it look easy though!!
I'll admit that I was a little hesitant because I loved your fireplace the way it was, but the herringbone looks AMAZING! I am a huge herringbone fan, and for some reason it looks awesome with the blue kitchen. Cannot wait to see what the new mantle looks like!
This looks amazing guys! Can't wait to see it all finished!
Meh. I liked it before. I guess it's one of those "you had to have been there" things. Love the blue!
Love the tile and the herringbone…curious if you thought about herrinboning it up the sides instead of the horizontal version and your reasoning (obviously waaaay easier the way you did it, for one) for choosing horizontal…
So much glam already! I wasn't sure when you mentioned it, but now I am convinced. It's really beautiful!
I kind of wish it was the same penny tile as the big wall in the kitchen! Any reason you didn't go that route? Too matchy-matchy?
The brick vs subway tile visual fight is messing with my perception of how great I know it'll all look in the end, but I'm excited to see the finished product!
This might be a silly question but why didn't you use the herringbone pattern on the top also?
That herringbone pattern on the floor looks great! I can't wait to see the build out for the surround.
I'm going to do a dusty light teal in my kitchen. Still trying to find the perfect shade. So glad to see you went with a blue, too.
LOVE the tile! And even love it more that you did it in a herringbone pattern. The shimmer is gorgeous and goes so nicely with all your capiz that you have around the house. Of course you make things look so much easier than I'm sure they really are :-)
That tile is really beautiful, I love the herringbone pattern. We had an old brick fireplace in our house that we painted (following your instructions) and then for my birthday last year, my husband built the surround while I was out of town. I love it, you won't regret building one. Here's some pics:
It still needs another coat of paint (after a year! oops!)but it's still a huge improvement.
Totally obsessed with it! And I have the same broken terra cotta tile mosaic in front of my fireplace. What a difference the marble makes! Plans are a brewing… ;)
I love herringbone and I love carrara marble anything!
Just wanted to drop in and tell you how much I enjoy your blog! I LOVE that you come to us in the middle of projects, but that you usually have quite a bit of progress to show before getting too far into it. Some home blogs just don't have enough interesting stuff per blog post, but yours is always nice and long with great pictures and good content. Anyway, just wanted to say KUDOS and that I love the tiles (especially that HERRINGBONE — wowza!). Can't wait to see it's progress!!
Do you plan on using the same marble subway tile when you end up doing the other side? Would it possible not be available anymore? Wondering if you thought about buying enough for that side too for future plans.
Ha! Bend… and snap! Love it. :D
I came across this mantle project on Pinterest this morning and thought of you guys. It isn't what you're going for, but I still wanted to share the pretty. Those tiny mosaic tile? I'm swooning.
So pretty!
In the future, if you didn't do it on this project, it might be quicker if you know how many tiles you need cut at a certain angle and cut them all in one trip (or at least more than one tile at a time).
Rather than lay, measure, mark, leave to cut, return, repeat, you have everything you need already!
looking good!!
This comment section is currently closed.

subset: commoncrawl


text:
Read more
Read more
The Publishers View has been a mainstay column of the Profile for more than three decades. As ownership of the paper has transitioned this past month from longtime publisher Paul Kashmann to new publisher Jill Farschman, The Publishers View will remain as Pauls long and valuable legacy, and his February 2015 farewell column will be the final one under this title.
by Susan Dugan
Born and raised in the North Lincoln Projects on Denvers West Side, Veronica Barela longtime president of NEWSED community development corporation (CDC) responsible for the revitalization of Santa Fe Drive knows a thing or two about creating sustainable transformation I grew up very poor, we were on welfare, she says. But Santa Fe Drive was a booming strip at the time. Back then we had three grocery stores in the neighborhood, a JCPenney, lots of retail, and access to downtown. Theres nothing wrong with growing up poor, it teaches you a lot. A strong advocate for her four children, Barelas mother made sure they had plenty of opportunities. I had a wonderful piano teacher my mother found. She really liked us and gave us lessons for next to nothing. I took piano lessons for 12 years. Her mother also instilled a passion for politics, grounded in the civil rights movement of the time. My mother was a really strong Democrat. She loved Franklin Delano Roosevelt and, as a little kid, I used to go around handing out literature.
Dear Editor:
On Feb. 10 at a City of Denver Board of Adjustment hearing, the owners of the Sushi Den/Izakaya restaurants requested a variance to allow construction of a 35-foot-high parking garage on South Pearl St. That garage would have three floors of parking plus the rooftop. While the current city zoning code does allow for a 35-foot height (MS-2 zoning) with no variance, it only allows two levels of parking plus the roof. The garage would stretch for 144 linear feet on South Pearl, taking place of the former Whole Cat building and existing Sushi Den surface parking. At least 10 residents/property owners from Platt Park attended the hearing and all who spoke, spoke in opposition. These included a representative from the South Pearl Merchants Association. Reasons cited for opposition were:
The Colorado Water Plan is an important process and document for all Coloradans to pay attention to. Unfortunately, James Eklund, in charge of the plan and director of the Colorado Water Conservation Board (WCB) appointed by Governor Hickenlooper, has made several serious false statements about the process and the current draft of the plan.
First, Eklund states that the process that created the draft of the Colorado Water Plan was grassroots, when nothing could be further from the truth. The truth is that the people who created the plan are self-appointed and purposely kept opposing anti-dam and anti-river-destruction voices from participating in the effort. A river conservation group I represent was purposely excluded from the South Platte Roundtable which wrote the plan for our basin, and a coalition that I formed which included 18 national, regional, and local environmental groups which oppose new dams and diversions had absolutely no (ZERO) representation on any of the states roundtables which wrote the plan.
by Cindy Johnstone,
Vice President, Inter-Neighborhood Cooperation
On May 5, 2015, new City Council representatives will be elected to serve for a four-year term. Their decisions will directly affect you, your family, your neighborhood and your city. New district council members are expected to represent those who live within their district; at-large members represent the entire city. City Council makes laws, budgets city money, and has authority to investigate city agencies and employees. This means your vote for a City Council representative has a direct impact for you and for where you live. Local elected officials are the closest we get to representative government within the large voting pyramid of representation in city, state and federal governments.
Rest In Peace
In place of the monthly gardening article we have chosen instead to memorialize the life and death of 3-year-old Austin Strasser. Our deepest sympathy and compassion go out to the Strasser family and everyone involved in this tragic event. You are welcome to give a donation in Austin's memory to the Sewall Child Development Center (sewall.org).
A fundraiser will be held on Tues.-Wed., March 10-11. Many of the businesses near S. University Blvd. and E. Ohio Ave. will donate a percentage of their sales over the two days to the Sewall Center, including: 730 South restaurant, Blondies Salon, Bonnie Brae Ice Cream, Bonnie Brae Liquors, Bonnie Brae Tavern, Saucy Noodle and Katherines French Bakery.
By Greg Wright
During my lifetime as a farmer in the San Luis Valley I have watched the Green Revolution from a front-row seat. My family tended fields throughout the industrial development of agriculture. We participated in and benefited from the mechanization of farming. Tractors and hydraulics replaced manual labor. Manufacturers made larger and more efficient farm implements. Cheap fertilizers replaced long-term crop rotations and manure. New grain and vegetable varieties produced higher yields of quality produce. We seemed to be on the verge of an agrarian utopia and then we noticed some problems.
by Diana Helper
This month our ditty
Is down and gritty
Suggesting you all
Should join a committee.
We know, it aint always pretty, but its wise and witty to do so, to get things done. So get up your gumption and start to function in conjunction at your neighborhood junction.
by Carolyn Howard,
Denver South High School has enjoyed its partnership with Washington Park Profile over the past few years, under the conscientious leadership of Paul Kashmann and Eileen Abbattista. We would be remiss in not thanking them for their years of service to the community and wish them well in their future endeavors. We look forward to continuing this partnership and community commitment with new publisher, Jill Farschman.


text:
- TRRT April 1-7 | Online Edition
- Guest Commentary: the Rockford Apartment Association
- State Roundup: NIU employee improperly reimbursed $30K
- State Roundup: Governor signs budget fix bills
- Rauner, Democratic leaders shake hands and make law
- State roundup: National guardsman and cousin arrested in terror plot
- Lawmaker says license plate readers a privacy threat
- Bryant not the first to feel impact of free agency rules
- State Roundup: Parents' group calls for standardized test opt-out bill
- Hononegah Mack: 'The best woman in the county'
Sounds of Good News presents 'Give Thanks!' event Nov. 21
From press release
Sounds of Good News Productions (SOGN) cordially invites everyone to attend their annual "Give Thanks!" (a musical community celebration of Thanksgiving) at 6 p.m., Sunday, Nov. 21. Location is Central Christian Church, 6595 E. Guilford Road, Rockford, and the event is free to the public.
Come and enjoy an evening of "Songspiration," historic facts, sing-alongs and praise testimonials. A special feature will be an "Attitude of Gratitude" message from Dianna Cole, SOGN business manager and director of education, founder and president of "Wisdom and You" (WAY Enterprises and "It's ALL in Me" workshop).
Free-will donations will benefit the Young Eagles Success (YES) Club for character development and excellence for kids. This event is co-sponsored by St. Paul Lutheran Church and Central Christian Church.
From the Nov. 17-23, 2010 issue


text:
Launcher Update
Get the Desktop App for Battle.net Now
- All your games in 1 place
- Log in once
- Automatic game updates
DevilDriver #1410
Posts: 3View profile
Blizzard is pushing for ultimate character visual manipulation....With the new Artisan you can change the appearance of any item to the skin of another..... I propose a legendary dye that you can add to a legendary item that will have no affixs but have a visual altering of the the item like adding Runes and Symbols. It will give an added defining element to separate peoples characters from one another.
Just a thought......
Threats of violence. We take these seriously and will alert the proper authorities.
Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.
Harassing or discriminatory language. This will not be tolerated.


text:
Time for Brewers' Khris Davis to shine
Published March 24, 2015
With one full season now under his belt, Milwaukee Brewers left fielder Khris Davis is looking to solidify his spot as an everyday power producer for the organization.
Published March 24, 2015
With one full season now under his belt, Milwaukee Brewers left fielder Khris Davis is looking to solidify his spot as an everyday power producer for the organization.
Published March 10, 2015
Every year - since 1998 - I've made the trip to Arizona to watch the Brewers get ready for a long, long season of baseball. It's my favorite work/fun trip (edging out even Las Vegas) that I get to take, but with all the fun and sun in the desert, it's surprisingly easy to forget to pay attention to the baseball on the field.
Published March 4, 2015
When Brewers fans talk to me about Spring Training, I always see the same look in their eyes. "I've always wanted to do that," they say wistfully, like Arizona exists in some far-away land, where you sit right next to the field and talk to the players in between in innings. Well, actually, most of that's true. Except for the far-away land part.
Published March 3, 2015
The Milwaukee Brewers are about to begin their spring training schedule, which is the first test of Ryan Braun's repaired thumb. The former National League MVP feels he's healthy for the first time in years, and if he remains so he can return to that elite level of play.
Published Feb. 25, 2015
Major League Baseball and the MLB Players Association agreed to enforce rules already on the books (wait, what?) in the hopes of speeding up the game. There will be hemming and hawing from veteran players, but the game does need to move little quicker.
Monday July 22nd, 2013 – Fox Lake, IL Jimmy cracked corn and nobody cared, so why the big cluster fuss about Ryan Braun getting cracked for using performance enhancing drugs? That's all everyone was talking about today on radio, television and online, and they m...
In the end it all felt so familiar for the Milwaukee Brewers. Squaring off against an overmatched San Diego Padres team in the final game of the 2012 season, the Crew powered their way to an early lead only to watch it all slip away due to an underperforming bullpen. Ultimately, game number 162 w...
The mother lode of booty to match his own mother load of booty, but not in Milwaukee. The Brewers had to choose one of the two, and Braun was the one. He was the man and then some. He's got a restaurant in town and has it going on with the ladies I'm sure. The team is...


text:
Worst Congress Ever!
The linked article gives 14 reasons which support the author's claim that the 112th Congress is the worst congress ever. Since only 11% of the citizens approve of Congress, surely we can all agree on this (unless you are one of the 11%).
The part that I found humorous had to do with repealing the ACA 33 times. Klein (the author) said that we know that when we do the same thing over and over, expecting different results, that is insanity. Which is a good way of describing the repeated repeal (with 0 bills to replace) of the ACA. Insanity. Actually, the Republicans weren't expecting different results. They knew that there would be no change, no matter how many times they voted to repeal. So, I guess they can't be insane. Stupid, maybe?
Here is a link that might be useful: Insanity? Stupidity? Or...?
No, they are licking their politicking chops, salvitating at the thought of campaigning against Obamacare and the intransient Dems who refuse to bow to the wishes of the majority (?!?!) of the American People. The same People that hate socialized medicine, such as Medicare.
31 symbolic votes what a crock of crap. They should be pulled from their seats have their heds shaved & run through a gauntlet of the unemployed & those who have lost their savings & homes.
Eric Cantor shoul be booed wherever he shows his traitorous face. Issa needs to launch an investigation of his legal if scummy betting against the US. Stinking floater I hope he loses his seat.
Nothing but a total waste of time and money, for those who are so annoyed about how Washington spends your money, total waste of time.
The way democracy works is to see what "the people" want in the upcoming election. If the Republicans win a majority, and the Presidency, then they have the mandate to repeal it...until them it is just posturing and a waste of time and money.
What happened to it being all about jobs. These are the same guys who criticized President Obama for focusing on healthcare instead of jobs in his first year, yet that's all they have focused on themselves......so transparent.
Focused 'like a laser' on jobs, they are.
When you stop and think that the republican congressmen ran in 2010 on focusing on jobs, jobs, jobs, and all we get is this cr*p from day one, along with, of course, the tax cuts for millionaires, nearly running the country into default, refusing to vote for any of the hiring proposals Obama made, and nobody ever calls them on it.
When you stop and think that the republican congressmen ran in 2010 on focusing on jobs, jobs, jobs, and all we get is this cr*p from day one, along with, of course, the tax cuts for millionaires, nearly running the country into default, refusing to vote for any of the hiring proposals Obama made, and nobody ever calls them on it.
They're all about nut-jobs.
But that was clear from the get-go.
How is it that a bill duly passed in Congress, signed into law by the President and upheld by the Supreme Court is not "settled"
If the Republic and win in November they will then have a mandate to change or repel the law..unless that happens its "settled"
"??? Why do you think a ruling from the Supreme Court of the United States, the highest court in the land, doesn't "settle it"?"
Because the American people get to have the last word.
Remember them?
They haven't voted yet. They haven't given the okay to Obamacare. In fact, they were pretty clear in 2010 about what they thought of the Democrats who shoved it down their throats.
It will be "settled" when voters choose between re electing Democrats and getting stuck with their unpopular 100% Democrat plan. Or a fresh start from a newly elected Republican president and US Senate, and the responsible Democrats who remained respectful of the American people and what THEY wanted.
"Nik, it may not be a landslide but the way Romney is managing this election it is very likely President Obama will have a second term.....then things will be settled."
Whatever you say, chase. You did tell me you know more about how things work here than most Americans, including me. So if Obamacare is what folks want, I guess we're stuck with it. I understand Canadians, like Democrats, know everything there is to know about what's good for Americans. Even when we're too stupid to know ourselves. Thanks for sharing.
The matter of voting remains. The American people still have the last word. As we should. I'm can live with that. We usually get what we want.
Nik that was truly uncalled for. So often I see such an intelligent thinking person in you and then you post someting like this. I am truly sorry for you , it must be awful to be so consumed with such a bitter, resentful view of the wonderful mosaic that its America...and the world beyond its borders.
Your sarcasm and insults only speak to your intolerance of other opinions.
Last time I checked Congress hasn't given the American people what they want, deserve or need. All they've given is a lot of bickering. Oh but, apparently Romney and his people are going to work with both sides of Congress and bring them together into a cohesive plan for jobs and the economy. That will be interesting.
Exactly JZ and things went to hell in a hand basket since the SC gave the country BUSH!!!
They have't passed any legislation. Basically, they do NOTHING and from a procedures standpoint, they are embarrassing in their ineptness and lack of knowledge on their powers.
They set back our recovery with their phony debt ceiling crisis that compromised global confidence in our country and almost toppled us and the world over the edge. They lost our credit rating in the process.
They screwed the transpiration bill, the FAA, small business tax relief, and transparent government. They blocked important appointments during a fiscal crisis that again stalled recovery.
They care more about a woman's uterus than jobs. They lie we all suffer. The dysfunction is epic. We have huge problems to solve.
"So disturbing that Nik felt the need to quote HERSELF. Wow."
How can we push Democrat talking points when we can't change the subject??? If Americans have the last word, we're screwed!
Love that picture, Labrea. My translation as the caption for your picture. Priceless!


text:
The RAND Corporation examines past attempts to rebuild public health and health care delivery systems during nation-building efforts after U.S. military deployments (PDF).
The RAND Corporation examines past attempts to rebuild public health and health care delivery systems during nation-building efforts after U.S. military deployments (PDF).
Elliott Abrams gives his take on the Middle East and on democracy and human rights issues across the globe.
Micah Zenko covers the U.S. national security debate.
Issues and innovations in global economic development.
Smith's insightful book explores the policy issues testing the Japanese government as it tries to navigate its relationship with an advancing China. More
This revolutionary new look at volatility and crisis in oil markets explores the conditions in which oil supply fears arise, gain popularity, and eventually wane. More
Maximalist finds lessons in the past that anticipate and clarify our chaotic present, revealing the history of U.S. foreign policy in an unexpected new light. More
Rates of heart disease, cancer, diabetes, and other noncommunicable diseases (NCDs) in low- and middle-income countries are increasing faster than in wealthier countries. The Independent Task Force outlines a plan for collective action on this growing epidemic.
This Independent Task Force asserts that elevating and prioritizing the U.S.-Canada-Mexico relationship offers the best opportunity for strengthening the United States and its place in the world.
Anthony H. Cordesman, a leading expert on Iraq and Afghanistan security issues, found the situation in Afghanistan discouraging during a...
Craig Cohen of the Center for Strategic and International Studies and Col. Garland H. Williams of the Army Management Staff College debate...
This report examines how improved integration of skilled U.S. civilians can improve nation building and counter-insurgency efforts.
Anthony Cordesman arges that better data to measure progress in Afghanistan and Iraq are needed. He says that too many current measures of...


text:
Managing Node.js Callback Hell, this Considered Harmful
Marc Harter, who is working with me on Node.js in Practice, recently published Managing Node.js Callback Hell:
Callback hell is subjective, as heavily nested code can be perfectly fine sometimes. Asynchronous code is hellish when it becomes overly complex to manage the flow. A good question to see how much "hell" you are in is: how much refactoring pain would I endure if
doAsync2happened before
doAsync1? The goal isn't about removing levels of indentation but rather writing modular (and testable!) code that is easy to reason about and resilient.
The example he uses is nested asynchronous file operations, with a counter to determine completion. This is compared to a version that uses async, and another that uses promises with q.
The post was originally published on StrongLoop's blog, here: Managing Node.js Callback Hell with Promises, Generators and Other Approaches. StrongLoop's blog is worth subscribing to if you're a Node developer – it has general tutorials and coverage of interesting npm modules.
Tom Boutell sent in a blog post about OO in JavaScript, called "this" considered harmful (sometimes):
Tim Oxley posted some comments discussing how to use
Function.prototype.bind as well.
Query IndexedDB Like MongoDB
Kent Safranski sent in Indexed, a library that wraps around IndexedDB with a friendly MongoDB-inspired API.
You can insert objects like this:
name: 'John Doe'
email: 'email@example.com'
}, function(err, data) {
if (err) {
} else {
And fetch them again with
_id: 28972387982
}, function(err, data) {
You can even use MongoDB-style operators:
someNumber: { $gt : 25 }
}, function(err, data) {
You'll probably like this if you work with databases in Node. It's actually part of a larger project called Riggr, a framework based around RequireJS, Knockout and jQuery. Although I think
indexed.js is cool enough that it should be a separate module, rather than being bundled in with Riggr.
Kent wrote a detailed blog post about
indexed.js here: Indexed: Query IndexedDB Like Mongo.
Node Roundup: npm-pkgr, Promised Land, Stash.js
npm-pkgr (GitHub: vvo / npm-pkgr, License: ISC, npm: npm-pkgr) by Vincent Voyer caches
npm install results based on your
package.json and
npm-shrinkwrap.json files.
Depending on your set up, this should reduce the time taken to deploy Node projects. The basic usage is
npm-pkgr instead of
npm install, and
npm-pkgr --production to use
Promised Land
Promised Land (GitHub: FredyC / promised-land, License: MIT, npm: promised-land) provides a way of wrapping modules with an
EventEmitter that allows you to use promises across your application.
For example, let's say you've got a module that connects to a database. Once the connection is ready, it does this:
var Land = require('promised-land');
Land.emit('database:connected', db);
Any other module that needs to know when the database is ready can now do so with promises:
var Land = require('promised-land');
Land.promise('database:connected').then(function(db) {
It also allows events to be repeated, in a stream-like way:
Land.stream('database:row').onValue(function(val) {
The project has tests and more examples in the readme.
Stash.js (GitHub: tadeuzagallo / stash.js, License: MIT, npm: stash.js) by Tadeu Zagallo is a multilayer cache manager. That means you can define and use different storage systems for caching, based on "drivers".
So far the author has added a driver for ephemeral storage and
localStorage support for browsers.
Cache items have methods for determining cache miss, locking, and setting values:
var stash = new Stash.Pool();
var item = stash.getItem('my/key/path');
var data = item.get();
if (item.isMiss()) {
data = 'example';
item.set(data, cacheDuration);
lock does here is dependent on the cache policy. There are four policies that are explained in the readme.
DOM4 Elements, ng-Fx
DOM4 Elements
DOM4 Elements (GitHub: barberboy / dom4-elements, License: MIT) by Ben Barber is a polyfill for
document.query and
document.queryAll, from the DOM Level 4 ParentNode interface.
document.queryAll returns a new class called
Elements, which extends
Array.prototype so you can do things like
Browser support is documented by Testling, and the project includes a small test suite.
ng-Fx (GitHub: Hendrixer/ng-Fx, License: MIT) by Scott Moss is an AngularJS version of Animate.css.
You can use classes to apply effects, then directives to control their behaviour:

Some options are controlled by classes where I expected to see directives – I think the author has tried to use CSS as much as possible rather than using JavaScript to write out
style tags to do the necessary styling. For example:
fx-speed-800 compared to
ng-fx-speed="800". A hypothetical
ng-fx-speed could accept any speed rather than predefined ones.
Ripple.js (GitHub: ripplejs / ripple, License: MIT) from Segment.io is a library for templating and data binding. It's based around templates, and has a chainable API, allowing plugins to be added to components:
var Person = ripple('
{{name}}
')
var person = new Person({
name: 'Tom'
The plugins can add directives in a similar way to AngularJS: take a look at each, for example.
There's a JSFiddle Markdown example that uses a template embedded in a
script element, and two plugins:
ripple.events and
ripple.markdown. The plugins allow changes to be observed on the
textarea and Markdown is set to render using a directive on a
div element.
One of the features that I like is the pattern for view composition. Views can be embedded, and data will still be synced when it changes.
Also, the library seems well tested, so you can get more usage ideas from the tests.
Live Reloading Chrome Apps, Chrome Extensions with React, sendMessage Tutorial
Live Reloading Chrome Apps
The Chrome Store itself is a pile of rubbish apps with very few exceptions.
Working with Chrome extensions and apps is pleasant enough in some ways – the JavaScript APIs are generally intuitive, and you can make native-feeling UIs without too much effort. However, the development experience feels a little bit dated and painful in places.
Konstantin Raev sent in Live Reloading Chrome Apps, an article about using Gulp with Chrome apps. It shows how live reloading isn't as easy as it could be, and how to fix it. There's also a full example on GitHub: bestander / clock-chrome-app-livereload-example.
Creating Chrome Extensions with React
Brandon Tilley sent in Creating Chrome Extensions with React:
If you're into client-side web development to any extent, you've probably heard of Facebook's React library. I was working on a Chrome extension, and decided to see how well React fit in to the development I was doing.
He also uses Browserify as well, which I'm interested in because I tried using RequireJS for sharing code between Chrome extensions and Firefox add-ons, and I struggled to get it to work in Firefox. My Firefox add-ons are using the Jetpack SDK rather than the old XUL way.
Passing data around in Chrome extensions
Passing data around in Chrome extensions by Erica Salvaneschi is an introduction to using
chrome.runtime.sendMessage and
We wanted to get data from the current web page and then use it to populate a form that appears in a new window. It was easy to create a context menu item that triggered an event, but sending data based on the current page to the new window wasn't obvious.
You might find this useful if you're just getting into Chrome extensions and want more concrete examples than what Google provides.
Browser Synths with Code Studio
Code Studio (GitHub: substack / code-music-studio, License: MIT, npm: code-music-studio) by substack is a tool for "designing musical algorithms". It provides a browser-based interface that allows you to return functions that manipulate amplitudes. You can experiment and share sounds using studio.substack.net, or install it with npm and run it locally.
If you want to find some code to play with, look at substack's Twitter account, or /-/recent.
The audio API is based on baudio, which works by accepting a function that takes a time value and returns an amplitude value between -1 and 1.
That means you can generate a sound just by running something like this:
return function(t) {
return sin(441);
function sin(x) { return Math.sin(2 * Math.PI * t * x); }
That example creates a function called
sin that generates values for a given pitch. Code Studio will render an oscilloscope so you can visualise the output as well as hear it. The waveform is rendered using amplitude-viewer, another module by substack that creates graphs with SVG.
If you're interested in the server-side portion of the code, then take a look at bin/cmd.js. This uses Node's
http module, and ecstatic for static assets.
I think my favourite example so far is polytropon. It has a function called
Moog, so you can't go wrong!
Node Roundup: Do We Need peerDependencies, lazy-install, Time Require
Do We Need peerDependencies?
Isaac Schlueter asked this question on Twitter:
Recently, peerDependencies has gotten more and more contentious. Srsly considering deprecation/removal. Thoughts? github.com/npm/npm/issues/5080
The discussion on Twitter and GitHub seems strongly for removing
peerDependencies. I agree with it simply because I hate explaining how it works.
Eran Hammer made an interesting point about the idea of a
compatibleWith property:
What we need is compatibleWith concept that simply warns you when you are using bad combinations. I think we can rename peerDeps and with some minor adjustment keep the functionality without annoying everyone. Making it a warning sign instead of a blocking feature would remove the "hell" part and those who chose to ignore warnings (as many already do with node versions) can continue to ignore.
If that isn't enough npm craziness for you, then how about this? lazy-install (GitHub: adamrenklint / lazy-install, License: MIT, npm: lazy-install) by Adam Renklint can be used to install dependencies based on "group" names.
Let's say you wanted to specify dependencies for your production and test environments. Your
package.json could look like this:
"name": "myProject",
"lazyDependencies": {
"server": {
"express": "4.0.0"
"test": {
"mocha": "1.18.2"
Then in your code you can run
lazy.install to trigger an
npm install with the right options. In fact, the module itself is basically a wrapper around
Time Require
How much time did that
require take to require? Now you can find out, with time-require! (GitHub: jaguard / time-require, License: MIT, npm: time-require).
It shows the execution time for each module by changing
require, and then displaying the elapsed time for each file once the
'exit' event is emitted on the
process object.
You can use it by adding a
require('time-require') as the first line of your main script.
Responsive SVG with VLEX
VLEX (GitHub: indus / VLEX, License: MIT) by Stefan Keim is a library for defining the logic necessary to resize SVG images. It works using a
vlex attribute that controls how things are resized, and there's also a
VLEX function for initialising and updating elements.
A "vlexpression" contains property descriptions separated by semi-colons. Using a
$ allows predefined values to be referenced:
$x is
element.clientWidth, and
$cX is
$x / 2 – the horizontal centre. Using a colon allows a value to be set:
Given those rules, you can centre a circle with
Internally it splits the expression with
String.prototype.split(';'), and then splits on
: to get the keys and values. It's a fairly simple parser, but it seems small and flexible enough to do get some clever effects using SVG. Take a look at the examples in the readme to see what's possible.
Reactive X-Tags
X-Tag allows you to easily create elements to encapsulate common behavior or use existing custom elements to quickly get the behavior you're looking for.
X-Tag provides several powerful features that streamline element creation such as: Custom events and delegation, mixins, accessors, component lifecycle functions, pseudos and more.
The PixelsCommander / ReactiveElements project by Denis Radin is a small MIT licensed library that builds on X-Tag so you can use it with React.js.
First you create a React component definition:
MyComponent = React.createClass({
render: function() {
return

React content

;
xtag.registerReact('my-react-component', MyComponent);
And then you can use
my-react-component in your HTML and see
items if it has been specified as an attribute.
I like the idea of combining these two libraries, it has an AngularJS feel while embracing upcoming standards.
The BMEAN Stack and Offline-First Design
Many of you would know the MEAN stack, the software stack consisting of MongoDB, Express, AngularJS and Node. However, the BMEAN stack might be new to you. The B stands for Breeze, a data management library with support for client caching.
The current trend in web development is mobile first design. Recently, the "offline first" approach got attention for contributing toward better mobile user experience. Breeze allows you to develop offline web applications easily thanks to support for querying the client's cache.
Breeze provides a sample BMEAN application called Zza, but it's not an offline application. I thought there could be a simpler but more practical application using social-cms-backend.
Social-cms-backend is Express middleware and it demonstrates how to develop a simple Twitter clone in a matter of minutes. I updated social-cms-backend so that it supports Breeze and you don't have to code the server side logic.
Using the new social-cms-backend and the BMEAN stack, I developed a sample application called notes-app-sample. It's an offline application with HTML5 cache manifest thanks to connect-cache-manifest.
The usage of the application is pretty straightforward: you write text which will be stored in
localStorage. Once you login, you can synchronize data with MongoDB on the server. The login is handled by passport, and currently it works with the Facebook strategy.
The source code of notes-app-sample is available here and the working application is available here.
I hope these sample applications give you some ideas about how to use Breeze with your MEAN apps.
Game Graphics with CutJS
CutJS (GitHub: piqnt/cutjs, License: MIT) is a new game graphics library by Ali Shakiba. It's aimed at 2D graphics for cross-browser development, with support for desktop and mobile browsers.
The API is jQuery inspired, but because it works with the Canvas the author has introduced an interesting way of styling elements called "pinning":
A CutJS app consists of a tree of nodes, each node is pinned (transformed) against its parent and have zero, one or more image cutouts. Image cutouts comes from either image textures or Canvas drawing.
Each rendering cycle consists of ticking and painting the tree. On ticking nodes adjust themselves to recent updates and then on painting each node transforms according to its pinning, pastes its cutouts and then delegates to its children.
Cut "apps" are created by calling
Cut with a function, and then textures can be added and manipulated with tween animations and events.
// Create new app
Cut(function(root, container) {
// Subscribe to Cut.Mouse
Cut.Mouse(root, container);
// Set view box
root.viewbox(500, 300);
// Create an image node
// on mouse click on this node
.on(Cut.Mouse.CLICK, function(ev, point) {
// Tween scale values of this node
scaleX: Math.random() + 0.5,
scaleY: Math.random() + 0.5
return true;
// Register an image texture
name: 'base',
imagePath: 'base.png',
cutouts: [
{ name: 'box', x: 0, y: 0, width: 30, height: 30 }
There's a cool Asteroids game example that shows off some of the main features of the library.
Node Roundup: npm and Heartbleed, sipster
npm and Heartbleed
The npm blog has an article about npm and Heartbleed:
We started patching machines within 30 minutes of the revelation of the bug, and our last vulnerable machine was patched at 7.30am Pacific today.
There has been no evidence so far that our keys were compromised during this period, but nevertheless we are regenerating all our SSL keys anyway and will be rolling them out over the next couple of days (we are very cautious about testing and rolling out new certs since an earlier incident in which we broke a lot of older npm clients while doing so).
Brian White sent in sipster (GitHub: mscdex / sipster, License: MIT, npm: sipster), a pjsip binding for Node. This is the basis for the SIP driver used by Asterisk 12+. He hasn't yet been able to get a working build environment set up for Windows, but it should work for Unix systems.
Here's a list of what Brian says it can do so far:
- Make and receive calls
- Play either individual or a playlist of wav files (ulaw, alaw, or pcm)
- Record audio to wav file (ulaw, alaw, or pcm)
- Hook up audio streams from different calls (e.g. create your own conference or record a mix of streams to wav)
- Adjust volume levels of audio streams
- Detect/Send DTMF digits
- Hold/un-hold
- Call transfer
The API is event based – for example:
call.on('dtmf', cb), and I think the C++ binding is a cool example of a Node native module: src/binding.cc.
AngularJS Localization
Sebastian Tschan, also known as blueimp, is the author of the hugely popular jQuery-File-Upload project. It turns out he also writes AngularJS modules. His recent AngularJS project is dedicated to localization, and works well with a Grunt task that builds locales:
- angular-localize (License: MIT, npm: angular-localize) provides a localization directive
- grunt locales (License: MIT, npm: grunt-locales) parses
localizeattributes in HTML files
By running
grunt locales:build you can get a set of JavaScript locale files that can be used to help translate content.
The basic angular-localize directive is used by adding the
localize attribute to a tag. The text in the element will be used as the translation key, but you can use
localize="key" to specify the key instead, which is useful if the final content hasn't yet been copy edited.
localize directive also observes
data-* attributes and passes them as objects to translation functions, so data can be inserted into text dynamically.
There's also a
localize service for translating text in your JavaScript code, and there's even a
localizeFactory for creating your own attribute-based
localize directives.
I haven't had good experiences with continuous integration systems. They seem to work fine for a few months until they go senile and I have to nuke and reinstall them. Kent Safranski sent in Avow-CI (GitHub: Fluidbyte / avow-ci, License: MIT), an open source CI server that's built on Node and MongoDB – hopefully this one will be different!
Avow supports Git web hooks, so you can automatically run tests when commits are pushed. It can also be configured to build a specific branch, and allows manual builds to be run.
To add a project to Avow you'll need to add an
avow.json file to the project's root directory. This describes the build process as an array of tasks. Tasks are run with
require('child_process').spawn, so you could technically trigger anything – I'd like to try it with
xcodebuild if I have time.
Sometimes I wish CI servers were just cron jobs that check for a non-zero exit code, but I might be able to learn to like a simple RESTful web application if it can run for a few months without exploding. The fact Avow accepts an array of commands to run is nicely simple and flexible, but I'm not sure I like the idea of having to add an
avow.json file to my projects.
One thing I like about Avow is the structure of the code: the "models" are just properties on
module.exports, and the HTTP routing layer is also super simple. You should take a look if you make Node web applications.
JavaScript OCR
Konrad Dzwinel sent in a JavaScript OCR demo. It uses getUserMedia to get images from the camera, glfx.js and JCrop for user-driven image correction, and ocrad.js to handle the character recognition.
The Ocrad.js demo managed to recognise the text in my sample image. I noticed it didn't work with white on black text – it had to be inverted for the correct text to be recognised.
Ocrad.js is an Emscripten-based translation of Ocrad by Antonio Diaz Diaz. Kevin Kwok, who put together Ocrad.js, also ported GOCR to JavaScript with Emscripten as gocr.js.
GOCR was started by Joerg Schulenburg, but has had other contributors since the original release back in 2000. Kevin compares both libraries and his experiences getting them running in JavaScript:
Anyway, I tried to compile GOCR first and was immediately struck by how easy and painless it had been. I was on a roll, and decided to do Ocrad as well. It wasn't particularly hard- sure it was slightly more involved but still hardly anything.
He also mentions Tesseract, which is a popular OCR system but also widely known to be very large:
In fact, what's absolutely stunning is the sheer universality of Tesseract. Just about everything which claims to have text recognition as a feature is backed by it. At one point, I was hoping that Mathematica had some clever routine using morphology and symbolic new kinds of sciences and evolved automata pattern recognition. Nope! Nestled deep within the gigabytes of code lies the Chuck Testa of textadermies: Tesseract.
I thought Konrad's demo was cool – being able to edit the brightness, contrast, and crop the image was a nice use of client-side technology. However, so far I've had the problem Kevin mentioned: occasional blocks of nothing, or seemingly random text, then suddenly excellent results.
Introducing WinJS
WinJS (GitHub: winjs / winjs, License: Apache 2.0) is a new UI-oriented library from Microsoft for developing cross-platform applications with JavaScript.
Microsoft have been pushing WinJS applications for a while as Windows 8 apps that are written with JavaScript instead of what we typically think of as .NET programming languages. This library is a set of UI controls that support desktop and mobile devices, and also some modern JavaScript APIs for things we've come to expect: promises, networking, data binding, and templates.
The UI style fits in with Windows 8, and although WinJS applications should run in modern browsers, there's talk of specific support for Windows Phone 8 and other Microsoft platforms in the future.
There's an announcement post on the Microsoft News Center:
I've been running examples on try.buildwinjs.com/ to get a feel for the API style, and it makes heavy use of promises and traditional OO wrappers:
WinJS.Binding.processAll(document.querySelector('#basicBindingOutput'), bindingSource)
.done(function() {
WinJS.log && WinJS.log('Binding wireup complete', 'sample', 'status');
Some corners of the UI widgets still need aesthetic attention – the date and time pickers don't look particularly great on Chrome on my Mac. But the APIs seem consistent and similar to other popular open source projects.
Node Roundup: Money and npm, Isaac Schlueter Interview, KOAN
Nebulous Profit Meditations
Isaac Schlueter wrote a long article on the npm blog about how npm Inc. will make money. It has some hints about the future of advertising on npm:
In my opinion, a good example of advertising done very well is the hosting page on WordPress.org. The services offered are beneficial to WordPress users, and are offered in such a way as to avoid distracting from the core product. The focused curation increases the value, and provides a strong incentive for the advertised products to maintain their quality or risk losing their position. We will be pursuing similarly focused and curated advertising partnerships on the npm website, in ways that benefit our users as well as our technology partners.
And GitHub's influence:
When I describe our plans to people, they often nod and say, "Oh, the GitHub model, ok." I'm sure that "public for free, private costs money" isn't new with GitHub. However, pursuing that kind of model, while at the same time acknowledging that coding is a social activity, really was a master stroke in the history of software development. I'm very thankful that they've helped pave the way for people to recognize this pattern.
Meet the Face Behind npm
The Modulus hosting company blog has an interview with Isaac, with some history prior to Node and npm:
At Yahoo!, I grew increasingly frustrated that I had to switch back and forth between PHP and JavaScript, and Google had just open sourced their V8 engine, so I started trying to seriously get into doing JavaScript on the server. I got involved with the K7 project, and started studying web servers in more detail. There was also SpiderApe, and v8cgi, and a bunch of other projects. Narwhal caught my eye, and I spent a bunch of time messing with that.
I seem to remember making IRC bots with Rhino and Java sockets, then Node came along and changed everything!
KOAN (GitHub: soygul / koan) by Teoman Soygul is a full stack boilerplate that uses Koa, AngularJS, Node, and MongoDB. Unlike other similar projects, this one has WebSocket features baked in.
A KOAN app uses JSON-RPC for syncing data with the server, and the readme has details on how to deploy this to Heroku (using
labs:enable websockets).
jQuery 1.11.1, 2.1.1, PositionCalculator, YModules
jQuery 1.11.1 Beta 1 and 2.1.1 Beta 1 Released
New jQuery betas are out. These are maintenance releases with bug fixes, including a tweak that helps create builds with custom names, so you can use a different name in AMD loaders like RequireJS.
PositionCalculator (GitHub: tlindig / position-calculator, License: MIT) by Tobias Lindig is a jQuery UI Position replacement:
This plugin will not manipulate any CSS settings or DOM-trees, it only calculate values. To be more exact, it calculates the difference of current position to target position and the overflow over boundary. Thus you are all paths open to implement the positioning according to your requirements. You can apply the new position by using top and left or using the css3 transform function or by setting margin. It is up to you.
Vladimir Varankin sent in YModules (GitHub: ymaps / modules) by Dmitry Filatov is an asynchronous modular loading system that works with Node and browsers.
The syntax looks like this:
function(provide, loader) {
loader('//yandex.st/jquery/2.1.0/jquery.min.js', function() {
function(provide, $) {
function MyModule() { /* do something here */ }
modules.require('my-module', function(MyModule) {
// `MyModule` will be available here after
// Its dependencies will be resolved and its `provide` will fire.
It has a feature that allows existing modules to be redeclared, which can help with component-based libraries:
modules.define('button', function(provide) {
function Button() { /* our button's constructor */ });
Button.prototype.doAction = function() {};
// on the end user's space we could redefine the same Button
modules.define('button', ['jquery'], function(provide, $, Button) {
// We're declaring the same module "button",
// so we have an access to the module's previous definition
// through the last define's argument (`Button` here), which
// is appended automatically and known as "previousModuleDeclaration"
Button.prototype.doAnOtherAction = function() {};
modules.require('button', function(Button) {
Building a Node OAuth2 Server
Most of you have probably written an OAuth2 client using Node. I've used the passport module for Express and found it worked very nicely. But what about creating an OAuth2 server?
Writing a server takes more work, but as long as you're clear about the authorisation flows that you want to use then it's certainly possible. Erica Salvaneschi wrote Building a Node OAuth2 server, a post about our experiences building an OAuth2 service for a commercial project we're working on at Papers:
This article is a walkthrough of Papers' test-driven implementation of an OAuth server using Node. We decided to go for what's known as resource owner password flow and chose node-oauth2-server to build our server.
The sample code was written using test-driven development, and depends on Express, Mongoose, bcrypt, and Mocha and SuperAgent for testing. We've kept the issues open on the sample code so you can give us feedback, which we're interested in seeing as we're new to OAuth2.


text:
2015: The year of retirement savings for all workers
Will 2015 be the year that all American workers gain access to a retirement savings plan provided by their employer? It could be. While retirement policy in general did not rise to the top of Congress's to-do list in 2014, employer-sponsored … Continue reading


text:
Faculty: Maryellen Maguire-Eisen, RN, MSN
Release Date: 02/10/2015
DNA Nurse Practitioner Member Erika Kimble's book, Malcolm Finney, Medical Detective: The Case of Itch and Rash, launches on August 25, 2012. It is the premiere book in a series which focuses on medical conditions that affect children, through the use of an illustrated adventure. Particularly, this edition focuses on Atopic Dermatitis.
Portions of the proceeds for all books sold on launch day from the publisher's website www.bandagesandbooboos.com will be donated to the National Eczema Association. Read the full press release here.


text:
Log Out
Call in to speak with the host
(661) 554-9121
Anna's Journey will visit some interesting vignettes about cancer... have you been touched by cancer... have you been impacted by the cost of cancer... is there any way you can prevent getting cancer...
if you have been touched personally by cancer, can you prevent a repeat... can you deal with the fear of a relapse... can you protect your family from getting it... is it genetic... environmental... how do you know... how do you find out
Let's talk cancer
Sorry we couldn't complete your registration. Please try again.
Please enter your email to finish creating your account.
old-style code for hosted blogs
Player Size
300 x 295
400 x 370
640 x 550
Receive a personalized list of podcasts based on your preferences.


text:
Sercotel Suites Viena, Madrid
Situated in the heart of Madrid, Sercotel Suites Viena, a family-friendly apartment, is within walking distance of Cerralbo Museum, Calle de la Princesa, and Sabatini Gardens. Also nearby are Principe Pio and Casa de Campo.
Property Features.
Wireless Internet access is complimentary in public areas. Event space measures 657 square feet (61 square meters). Additional amenities include multilingual staff, tour/ticket assistance, and complimentary newspapers in the lobby. Onsite parking is offered for a surcharge.
The 57 air-conditioned guestrooms at Sercotel Suites Viena include minibars and safes. Pillow menus are available. Complimentary wireless high-speed Internet access is provided. Rooms are equipped with flat-screen TVs with satellite channels. All accommodations provide desks and complimentary newspapers. Bathrooms offer shower/tub combinations, hair dryers, and complimentary toiletries. All units at this 3-star apartment have kitchens with microwaves, coffee/tea makers, and cookware/dishes/utensils. In addition, a turndown service is provided nightly and amenities available on request include in-room massages.
Very quiet, nice, well furnished, clean hotel. All staff members are very friendly,…
The desk staff were very helpful and friendly, the room was clean, basic, and fine, the…
Enter dates to check prices
Hotel Info: 866-539-8117from $78
- Junior Suite
- Standard Double Room Single Use
- Triple Room
- Standard Room, 1 Double or 2 Single Beds
- Last Minute offer non refundable
- Early Booking
- Junior Single Suite
Recommended hotels
At a glance
Key facts
Hotel size
- This hotel has 57 rooms
- This hotel is arranged over 6 floors
- Check-in time starts at 2 PM
- Check-out time is noon
Required at check in
- Credit card or cash deposit required
- Government-issued photo ID required
Travelling with others
- Pets not allowed
- Free WiFi in public areas
- Free WiFi in rooms
- Self parking *
Other information
- Resort fee included
Nearby Three Star Madrid hotels
In the hotel
- Buffet breakfast (surcharge)
- Room service (during limited hours)
- Meeting rooms
- Conference space size (feet) - 657
- Conference space size (meters) - 61
- 24-hour front desk
- Tours/ticket assistance
- Dry cleaning/laundry service
- Free newspapers in lobby
- Luggage storage
- Number of buildings/towers - 1
- Year Built 2006
- Elevator/lift
- Television in lobby
- Accessible path of travel
- Accessible bathroom
- In-room accessibility
- Roll-in shower
In the room
- Climate control
- Air conditioning
- Minibar
- Coffee/tea maker
- Pillow menu
- Down comforter
- Blackout drapes/curtains
- Soundproofed rooms
- Turndown service
- In-room massage available
- Private bathroom
- Shower/tub combination
- Free toiletries
- Hair dryer
- Flat-screen TV
- Satellite TV channels
- Desk
- Free newspaper
- Free WiFi
- Microwave
- Kitchen
- Cookware, dishware, and utensils
- In-room safe
Top Madrid hotels
Recently reviewed hotels in Madrid
- Hostal Luz Madrid
"My stay there was really pleasant i really like the room everyday they go in and clean it and they always have hot water i would def. Go there again if i go to madrid in the…"Mar 8, 2015
- Flat5MadridFrom
"It was awesome!"Mar 8, 2015
- Best Western Hotel Los CondesFrom
"Stayed at this hotel for a night in Madrid and was the best decision by far. A great price, easy to get to from the airport, right in the middle of great attractions, and friendly…"Mar 8, 2015
- Hilton Madrid AirportFrom
"A pleasant surprise. They thought of everything and the room was oversized for a European property. Good shuttle service. Great meal, great service and a nice hotel for business…"Mar 8, 2015
Nearby hotels
Sercotel Suites Viena, Madrid's small print
Also known as
- Viena Suites
- Suite Viena
- Madrid Hotel Suites Viena
- Hotel Suite Viena
- Hotel Viena
- Viena Madrid
- Hotel Suite Viena Madrid
- Suites Viena Madrid Hotel
- Viena Suites Madrid
- Hotel Suites Viena Madrid
This hotel may place an authorization for any bookings where payment for the stay will be made at the hotel. For more details, please contact the office using the information on the reservation confirmation received after booking.
Cash transactions at this property cannot exceed EUR 2500, due to national regulations. For further details, please contact the property using information in the booking confirmation.
The name on the credit card used at check-in to pay for incidentals must be the primary name on the guestroom reservation.
Mandatory fees
The charges below are included in the total price displayed:
- Resort fee
Optional extras
Self parking costs EUR 23 per night
Rollaway beds are available for EUR 28.08 per night
We have included all charges provided to us by this hotel. However, charges can vary, for example, based on length of stay or the room you book.


text:
2015-2016 Cheer teams NOW forming.
Click here for Tryout Information Packet.
|United Starz Academy is proud to announce that our Platinum team from Cheer Time USA received a prestigious bid to The Summit in Orlando, FL. Only 10% of the top programs advance to this level of competition. Team Platinum is currently raising funds to send the 32 member squad to this Nationally Ranked competition. Please consider supporting them at GoFundme.
USA Cheerleading Clinic
April 4, 2014 1PM-3PM Ages: 5-13 Cost: $25 includes shirt. Participants will be taught: Motion, Jumps, Stunts, Cheer/Dance All cheerleaders will be placed into age appropriate groups. This clinic will be taught by certified and accredited all star coaches and assisted by current Senior Platinum team members. Registration Form can be downloaded here.
2015-2016 All Star Cheer Teams Forming
Preseason practices start March 11th, 2015. Come try Allstar cheer or improve your skills. Final tryouts for levels Tiny, Mini, Youth, and Junior Ages is Sunday April 26, 2015. Final tryouts for Senior Age teams Wednesday May 20, 2015. For more information see 2015-2016 Tryout information packet.
Expanded Instructional Class Menu
USA All Star Academy has many exciting new classes to offer. Along with our exemplary tumbling and dance classes, we have added a Preschool Gym and Learn progam, combination classes and youth gymnastics. We will also offer Day Camps on school holidays. Click here to view the Fall 2014 Brochure and class schedule.
The mission of United Starz Academy is to promote dance, cheerleading, tumbling, and fine arts to our community. We have a "commitment to excellence" so our students can improve their quality of life both athletically and spiritually. This includes, but is not limited to, overall self esteem, personal relationships and team building skills, poise, grace and self discipline.
United Starz Academy offers dance, cheerleading, and tumbling classes for all levels and abilities. Students can participate for fun or at a competitive level. Browse our website for more information regarding United Starz Academy, USA All Star Cheer, and USA All Star Dance.
USA All Star Academy
Get Directions to this location
Business Hours
Monday: 4:00-8:30pm


text:
Described is a technology by which raw GPS data is processed into segments of a trip, with a predicted mode of transportation (e.g., walking, car, bus, bicycling) determined for each segment. The determined transportation modes may be used to tag the GPS data with transportation mode information, and/or dynamically used. Segments are first characterized as walk segments or non-walk segments based on velocity and/or acceleration. Features corresponding to each of those walk segments or non-walk segments are extracted, and analyzed with an inference model to determine probabilities for the possible modes of transportation for each segment. Post-processing may be used to modify the probabilities based on transitioning considerations with respect to the transportation mode of an adjacent segment. The most probable transportation mode for each segment is selected.
1. In a computing environment, a method comprising:
processing positioning data into a plurality of segments, the positioning data comprising location-related information and timing-related information; and
determining a predicted mode of transportation for respective segments.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. In a computing environment, a system comprising:
a segmentation mechanism configured to separate GPS data into a plurality of segments;
a feature extraction mechanism configured to extract features for respective segments; and
an inference model configured to use at least some of the features extracted for respective segments to infer a transportation mode for respective segments.
10. The system of
11. The system of
12. The system of
13. The system of
14. The system of
15. The system of
16. One or more computer-readable media having computer-executable instructions, which when executed perform actions, comprising:
processing GPS data into walk segments and non-walk segments based on velocity data or acceleration data, or both velocity data and acceleration data;
determining a length of respective segments;
comparing the lengths of the segments against a merge threshold distance, and merging any segment having a length below the threshold distance into another segment;
comparing the lengths of the segments against a certainty threshold distance;
and for any uncertain segments that do not meet the certainty threshold distance, determining whether a number of consecutive uncertain segments is present, and if so, merging the consecutive uncertain segments into a non-walk segment; and
determining a predicted mode of transportation for respective walk segments and for respective non-walk segments, based on features of respective segments.
17. The one or more computer-readable media of
18. The one or more computer-readable media of
19. The one or more computer-readable media of
20. The one or more computer-readable media of
This patent application is related to U.S. patent application Ser. No. 12/037,347 to Zheng et al., entitled, "System for Logging Life Experiences Using Geographic Cues," filed concurrently herewith and incorporated herein by reference; and to U.S. patent application Ser. No. 12/037,263 to Wang et al., entitled, "Indexing Large-Scale GPS Tracks," filed concurrently herewith, and incorporated herein by reference.
Many users of global positioning system (GPS) devices upload their GPS data (tracks) to the Internet, sometimes in conjunction with photographs and the like, such as for sharing travel and other experiences. In addition to sharing with others, users that upload their GPS tracks may benefit by having a better record of past events, which helps in reliving past events and gaining an understanding of their life patterns. At the same time, applications can attempt to learn from such GPS data, such as to determine popular routes to recommend to others, plan traffic, and so forth.
In general, raw GPS data are browsed and otherwise analyzed directly, without much understanding or context. For example, it would be more useful to applications if users would manually tag or otherwise annotate their GPS tracks with additional information, such as whether they were walking or riding at a particular time. However, there is generally no motivation for users to do so to benefit some unknown application, and further, it is difficult for people to remember the accurate time during a given trip when such additional information is appropriate to include.
Additional data collected by other sensors such as cellular phone devices and towers, Wi-Fi, RFID, and/or other information extracted from geographic maps, such as road networks, may help in interpreting GPS data, but this has its own drawbacks. Some of the drawbacks include a need to have a sufficient number of sensors available and positioned at meaningful locations, the need to correlate such other data with GPS data, the need for users to have cellular phones and/or Wi-Fi devices active and/or possess RFID tags, and so forth. As a result, only raw GPS data is consistently available.
However, given raw GPS data, simple mechanisms cannot accurately infer additional information such as a user's transportation mode. For example, velocity-based rules for determining whether a user is walking or riding fail when traffic conditions and/or weather cause driving velocity to be as slow as walking. When user takes more than one kind of transportation mode along a trip, the problem becomes more difficult.
This Summary is provided to introduce a selection of representative concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in any way that would limit the scope of the claimed subject matter.
Briefly, various aspects of the subject matter described herein are directed towards a technology by which positioning (e.g., raw GPS) data is processed into segments of a trip, with a predicted mode of transportation determined for each segment. In one example implementation, segments are first characterized as walk segments or non-walk segments based on velocity and/or acceleration data gleaned from the GPS data. Features corresponding to each of those walk segments or non-walk segments are extracted, and analyzed with an inference model to determine a most probable mode of transportation for each segment. Before selection of a transportation mode based on the probabilities provided by the inference model, post-processing may consider the possible modes as candidates, and modify their respective probabilities, such as to factor in the probability of transitioning to each candidate from a transportation mode of an adjacent segment.
In one aspect, such as to produce more accurate results, when first characterizing points as corresponding to walk segments or non-walk segments, segments below a threshold merging length are merged into another segment. Further, segments below a threshold uncertainty length may be considered uncertain; an uncertain segment may be merged with one or more other consecutive uncertain segments into a non-walk segment.
The results comprise a predicted mode of transportation inferred for each segment of a trip. The results may be output in some manner, such as to tag the GPS data with information corresponding to the predicted mode of transportation for each segment.
Other advantages may become apparent from the following detailed description when taken in conjunction with the drawings.
The present invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
Various aspects of the technology described herein are generally directed towards automatically determining transportation modes from raw GPS data, including multiple transportation modes in a single trip, and detecting transitions between modes. In one example implementation, this is accomplished via a change point-based segmentation method, an inference model, and a post-processing algorithm that is based on conditional probability. In an alternative implementation, conditional random field inference provides the inference model without the need for post-processing.
In one aspect, GPS tracks submitted by users may be automatically tagged with inferred transportation modes, whereby, for example, a user has a better record of the user's own past, while others have more information of the user's experiences when browsing a GPS track. Further, data from active GPS devices (such as built into a cellular telephone with GPS capability) may be dynamically processed to infer a current transportation mode, so that, for example, people can retrieve directions and other information applicable to their current mode of transportation. Examples of dynamic inference include providing map information with different map scales for walking versus riding, providing a relevant bus schedule, and so forth.
While the examples herein are generally directed towards certain transportation modes (e.g., walking, driving, bicycling, commuting by bus), it is understood that these are only examples. As can be readily appreciated, the technology described herein is applicable to many other forms of transit, such as jogging, nautical transit, aeronautical transit, and so forth, alone or in any combination. Further, while various mechanisms such as classifiers are described as being suitable for use in determining a most-likely transportation mode corresponding to particular features within GPS data, other mechanisms may be employed.
As such, the present invention is not limited to any particular embodiments, aspects, concepts, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, structures, functionalities or examples described herein are non-limiting, and the present invention may be used various ways that provide benefits and advantages in computing and/or data processing in general.
Turning to
More particularly, as depicted in
Given a GPS log(e.g., 202) to process, the segmentation mechanism 104 sequentially connects the GPS points into a track, and divides the track into trips based on the time interval between the consecutive points, e.g., separate trips are established when the time interval exceeds a certain threshold (e.g., twenty minutes). As will be understood, a change point (CP) represents a place where the user changed a transportation mode, e.g., from riding in a car to walking.
The duration of a trip is the time interval between its start point and end point, while the length of a trip comprises the sum of the distances between consecutive points along the trip (e.g., P1 to P2 plus P2 to P3 . . . plus Pn−1 to Pn). The same general definitions apply to each segment, that is, the duration of a segment is the time interval between its start point and end point, while the length of a segment comprises the sum of the distances between the consecutive points on the segment, e.g., CP to Pn−1, plus Pn−1 to Pn.
Because users often change their mode of transportation during a trip, a trip may contain two or more transportation modes. As described below, the segmentation mechanism 104 separates the segments for different transportation modes first by differentiating walk segments from non-walk segments; note that as used herein, segments likely corresponding to walking are referred to as walk segments, while the segments of other transportation modes (e.g., car, bicycle, bus) are referred to as non-walk segments. Similarly, each of the GPS points of a walk segment, such as Pn−1 in
Change points are detected automatically using rules based on certain observations, namely that people stop, and then go, when changing their transportation modes, that is, there are some GPS data indicative of a velocity close to zero during such a transition. Further, to a high probability, "walk" indicates a transition between different transportation modes, that is, the start point and end point of a walk segment each corresponds to a change point, to a relatively very high probability.
As shown in the following table, the above observations may be measured and have been proven correct in the transition matrix (with transportation mode labels provided for corresponding GPS data by actual volunteer users):
As can be seen, Car, Bus and Bike modes almost always transition to the Walk mode, with a direct transition between them without walking being quite rare, possibly due to mislabeling. For example, a person may have recorded taking a taxi immediately after getting off a bus, while forgetting to include a very short Walk segment between these two transportation modes when labeling the GPS data. Such events are likely responsible for the small percentages corresponding to a direct transition between Car and Bus; notwithstanding, a Walk segment essentially exists in this situation.
Once segmented, a feature extraction mechanism 106 extracts various features from each segment and sends these features to an inference model 110 to learn a user's transportation mode or modes 112. In one implementation, example features for a segment include length, mean velocity, expectation of velocity, covariance of velocity, top three velocities and top three accelerations from each segment. Note that because the features of a segment may be influenced by an abnormal point/positional error, top three velocities and top three accelerations are selected instead of the maximum velocity and maximum acceleration. Further note that the segmentation mechanism 104 uses length data, velocity data and acceleration data, and may work in conjunction with the feature extraction mechanism 106 as indicated in
Various techniques may be considered to determine the predicted transportation modes, such as when selecting the inference model 110. For example, each of the segments of GPS tracking data may be regarded as an independent instance, which is then classified using general classifiers, such as a decision tree-type classifier. Other suitable types of models that may be implemented as the inference model 110 include Bayesian Net and Support Vector Machine (SVM) models. After the inference model 110 predicts the transportation modes 112, a post-processing mechanism 114 that considers transition probabilities 116 between different transportation modes may be used to improve the prediction accuracy and provide final results 120.
In one example, after the inference process, the predicted transportation modes are ranked by their probability values, as depicted in
By post-processing, which considers the conditional probability between different transportation modes, the prediction accuracy may be improved; for example, it is more likely that a user exiting a car will walk to a bicycle than directly switch to a bicycle. If in a segment such as the segment i-1 in
An alternative inference technique regards the GPS 102 data as a kind of sequential data when using the features 108. To this end, conditional random field (CRF) 118, a framework for building probabilistic models to segment and label sequence data, may be leveraged to perform the inference into the final results 120. Note that because the conditional probabilities between different transportation modes are considered in the conditional random field framework's graphical model, post-processing is not needed.
By way of example,
Given real world observations as well as the knowledge mined from GPS data, the change points are first determined by differentiating walk and non-walk segments of a trip. This initial categorization into two classes (walk or non-walk) rather than directly into four classes {Bike, Bus, Car, Walk}, reduces the complexity of segmentation. Subsequently, the features of each segment may be extracted to infer the most probable transportation mode.
Step 602 of
More particularly, step 620 of
As shown in
However, as depicted by the middle set of points in
By way of example, the two walk points in the segment of Bus within the middle set of points do not form a segment because of the relatively short distance between them. The same (or similar) criterion is also applied to handle any outlier points (the black points) in the Walk segment.
After any backwards merging, the trip is divided into a series of one or more alternate Walk segments and non-Walk segments. However, as represented by the lower set of points in
In general, the longer a segment is, the richer the features of its transportation mode. As a result, a longer segment leads to a more correct prediction of that segment's corresponding transportation mode. In contrast, the shorter a segment is, the higher the uncertainty.
To avoid incorrect partitioning based on short segments, step 628 evaluates the length of the segment against a certainty threshold distance (e.g., fifty meters) If the segment length exceeds the threshold, the segment is considered a "certain" segment (step 630). Otherwise the segment is considered an "uncertain" segment (step 632), that is, the process is uncertain as to the transportation mode of this segment even if currently considered a Walk segment. If at step 634 the number of consecutive uncertain segments exceeds a threshold number, e.g., three in one example implementation, such a set of uncertain segments is considered to be a non-Walk segment. In general, users ordinarily do not often change their transportation modes within such a short distance; for example, as depicted by the lower set of points in
At this time, the start point and end point of each Walk segment are defined as potential change points, which are then used to partition a trip, as generally represented via step 608 of
Step 610 represents extracting other features from the segments, which step 612 uses to classify the segments. For example, non-Walk segments may be classified as Car, Bus or Bicycle based on their corresponding features.
Step 614 represents performing post-processing (if appropriate for the inference model) as described above. Step 616 represents outputting the results, e.g., tagging the GPS data with the predicted transportation modes.
As can be readily appreciated, the above-described processing can infer compound trips containing more than one kind of transportation mode. In addition, the processing can correctly detect the transitions between different transportation modes. This may be accomplished only via raw GPS data, independent of other information from maps and other sensors. Further, the model learned from the dataset of some users can be applied to infer transportation modes from the GPS data of others.
Exemplary Operating Environment
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer 710 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 710 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer 710. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above may also be included within the scope of computer-readable media.
The system memory 730 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 731 and random access memory (RAM) 732. A basic input/output system 733 (BIOS), containing the basic routines that help to transfer information between elements within computer 710, such as during start-up, is typically stored in ROM 731. RAM 732 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 720. By way of example, and not limitation,
The computer 710 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, described above and illustrated in
The computer 710 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 780. The remote computer 780 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 710, although only a memory storage device 781 has been illustrated in
When used in a LAN networking environment, the computer 710 is connected to the LAN 771 through a network interface or adapter 770. When used in a WAN networking environment, the computer 710 typically includes a modem 772 or other means for establishing communications over the WAN 773, such as the Internet. The modem 772, which may be internal or external, may be connected to the system bus 721 via the user input interface 760 or other appropriate mechanism. A wireless networking component 774 such as comprising an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a WAN or LAN. In a networked environment, program modules depicted relative to the computer 710, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
An auxiliary subsystem 799 (e.g., for auxiliary display of content) may be connected via the user interface 760 to allow data such as program content, system status and event notifications to be provided to the user, even if the main portions of the computer system are in a low power state. The auxiliary subsystem 799 may be connected to the modem 772 and/or network interface 770 to allow communication between these systems while the main processing unit 720 is in a low power state.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
Black Jubah
Festive Jubah
Butik Dan Pemborong Koleksi Muslimah Terkini.. Whatsapp Kami 0122023312
Haven't found the right supplier yet ?
1 request,multiple quotations 1-click quotation comparison OEM,ODM & multi-category buying
Get Quotations Now >>
Want product and industry knowledge for "jubah" ?
Trade Alerts are FREE updates on topics such as trending hot products, buying requests and supplier information - sent directly to your email inbox!
Subscribe Now >>