text:
At a certain point in time, the rap game was all about being real, raw, and rugged. The harder the beats and rhymes, the scarier your persona was (see: Ice Cube). And nowadays, mainstream rap is more or less about getting the party going. The rap radio airwaves are duller than a knife from Panda Express, and the underground is far too expansive. The only way to make a splash is to either do something different (see: Odd Future), have natural God-given talent (see: Jay-Z, Nas, or Eminem), or very rarely both (see: Kanye West).
A group like Huntsville, AL's G-Side is on the right path, working together for over a decade, still doing their own thing. A common adjective in reviews is "cinematic", and while they embrace the modern dirty-south rap mentality, they also hold true to old school methods. "Everybody's been trying to step their game up," Stephen "ST 2 Lettaz" Harris explains. "It was a dead era for a minute." Hip hop certainly has needed a good jump-start for some time. Either the new generation is all about capitalistic gain (where in god's name is Chingy?), or people have been singing about the same things for years. "I don't even listen to a lot of rap anymore," Harris continues. "If anything, it's old school, like Outkast, or Masta P, but I try to look for new music, like alternative rock and soul."
This shines through within their music as well, as they sample everything from Beach House to Enya. In a time when the internet offers anything and everything, it's fitting when an artist takes the time to explore all that's available. Aside from searching for new music, Harris attributes his inspiration to cinema: "I actually want to direct videos at some point. I watch three or four movies a day."
Meanwhile, the duo's other half, David "Yung Clova" Williams still holds true to one of rap's core ideals: fashion. "I like sports and fashion a lot, for real," he says. "I just love the jerseys, crazy hair-dos, and stuff".
While the two focus on unique sampling and looking fresh, they have also gone on to embrace the world of modern technology as a means to further their careers. "Use the internet/to network/constructed a network/where we all connected to get work" they rap on "I Am", a track off their newest album, The One…Cohesive. "If it wasn't for the technology, we wouldn't be here," Williams admits. "You couldn't see your face on a site at first, and then you can Google your name, which is great after the grunt work."
Harris adds a bit more: "It's a whole other game nowadays, because right when you were tired of fuckers selling shit at the store, then there was a whole other way to find music, and it has boomed. You can sit in the privacy of your home, and you can find new music, and find sites that you trust and love. It's dope. In order for us to be a success, we have to add the tech side to the old school physical grind." On the other hand, they're definitely aware of the necessity of face-to-face interaction. Harris continues: "It's cool when you got Twitter followers, but if you're not traveling, doing shows and touching base with the people, the influence isn't felt."
Since there's so much clutter on the web, it becomes hard to sort the good from the bad, but Harris and Williams attribute their sudden propulsion into rap stardom to something else. "People got a good thing on our last album," Yung Clova explains. "They just wanted to see if we could do it again."
"We just stuck to the same formula," Harris adds. "We can't make music like other people, so we want to make things that haven't necessarily been heard."
"When we hear the music, it's just a gut feeling," Williams chimes in. "Suddenly, you hear it, and you're like, 'Awww man!'"
The two have certainly made a reputation in their home of Alabama, and are starting to get more recognition elsewhere. "Critics be comparing us to Outkast/Funny 'cause they treat us like some outcasts," they sarcastically taunt on "Inner Circle". Critics and fans alike lump them in with other southern acts, but G-Side are trying to do something of their own. "Well excuse me Mrs. Executive/I'm from Alabama/That's probably why my music/Isn't quote, unquote Atlanta," they continue. Overall, G-Side aren't trying to mix up with the greats of the dirty south, and they're not trying to be the toughest, richest guys on the block. They're just trying to put their two cents in.
"I want to be able to do these songs we're making now, and perform them when we are 40," Harris proudly admits. "Just make classic timeless music that doesn't die." G-Side just want to do what they are passionate about, and get the respect, and recognition they deserve.
"We realize we can't change the world, but I at least want to make a better surrounding for my family and the next generation," Williams states. "I don't want them to go through what I went through." If the next decade is as successful for them as this one was, they might get their wish.
G-Side will drop their next album, titled Island, on November 11th, and will perform at Chicago's Pitchfork Music Festival on Saturday, July 16th at 2:50 p.m..


text:
LOS ANGELES — The Metropolitan Transportation Authority board on Thursday voted to hold a public hearing Nov. 18 to consider changes in routes and schedules on about 15% of the agency's bus lines across Los Angeles County.
The decision came despite protests from Bus Riders Union members and Compton high school students, many of whom feared the changes would reduce service.
Students from Centennial High School called on the MTA to provide more bus service, not less.
History teacher Stanley Call said most of his students rely on the bus to get around Los Angeles. Call said later that attendance in his classes fell and students who did attend school often arrived late during the recent 32-day strike by MTA bus and train operators.
The board, meeting in public for the first time since before the strike began, got an earful of criticism from riders angry about the walkout. Other speakers criticized the board's appeal of a federal court order directing the agency to buy more buses.

subset: commoncrawl


text:
Browse by Manufacturer: Castle Toy
Sort by:
- Trending
- New Review
- Special Needs
- Video Review
Pink Doll Umbrella Stroller
from Castle Toy
This Pink Doll Umbrella Stroller with pink print fabric and a pink frame is perfect for your little one to pretend with. They will push their doll around in this pink doll stroller for hours of fun.…
Doll Carrier and Doll Car Seat
from Castle Toy
This plastic Doll Seat and Doll Carrier holds up to a 21" baby doll and is covered with a great heavy weighted fabric for softness. Included with this is a matching bib.
Supper Shopper Shopping Cart
from Castle Toy
Supper Shopper Shopping Cart by Castle Toy is a superb cart with a metal frame and swivel wheels. This shopping cart includes a ten piece food set, shopping list, money and coupons. Your little one…


text:
The Jury
Chairmen of the jury:
Edik Ghabuzyan, Head of Department of Creating and Keeping Armenian Fonts at the National Book Chamber of Armenia, consultant for Adobe Systems, Armenia.
Boris Kochan, Founder and CEO of KOCHAN & PARTNER. Past President of the Typographic Society Munich (tgm – Typographische Gesellschaft München), Germany.
The members of the jury board:
Gerry Leonidas, UK
Fiona Ross, UK
Keith Tam, Hong Kong
Angela Poghosova, Armenia
Adi Stern, Israel
Haytham Nawar, Egypt
Anuthin Wongsunkakon, Thailand
Chang Sik Kim , USA
The list of experts:
As the members of the jury panel cannot be experts in all categories the organizing committee has decided to invite three experts for each category. We shall send all the works in certain text typefaces category to the experts, they will consider them and write their comments and opinions for every work and send them to the heads of the organizing committee Edik Ghabuzyan and Boris Kochan. The members of the jury will take into account all the comments when making final decision in choosing the prize winners.
Armenian text typefaces category:
Vahan Balasanyan,
Garegin Martirosyan,
Ruben Malayan.
Arabic text typefaces category:
Ahmed Mansour,
Reza Abedini,
Damoon Khanjanzadeh.
Chinese text typefaces category:
Kenneth Kwok,
Zhiwei Zhu,
Sammy Or.
Cyrillic text typefaces category:
Alexandra Korolkova,
Alexey Vanyashin,
Ilya Ruderman.
Greek text typefaces category:
John Hudson
Klimis Mastoridis
Irene Vlachou
Indic text typefaces category:
Ravi Pooviah,
Rathna Ramanathan,
Graham Shaw
Hebrew text typefaces category:
Liron Lavi Turkenich,
Denis Masharov,
Igor Zaidel
Korean text typefaces category:
Geumho Seok,
Jae-joon Han,
Byung-in Kang
Judging procedure and criteria
- Text typefaces are conceived appropriate for their use in text
- Glyph shapes are drawn properly, even in detail
- Glyphs and overall concept comply to the particularities of the script system
- Proportions are well-balanced
- Spacings and Kernings are applied properly
- The design shows a certain amount of originality
- In multiscript typefaces, script systems are harmonised without disturbing the genuine character of the scripts.


text: Healthy Recipes Sweet-&-Sour Chicken Drumsticks Recipe E-mail recipe Print recipe To save this recipe, register now! Quick Info: Servings Quick Meal Nutritional Info (Per serving): Calories: 255, Saturated Fat: 2g, Sodium: 389mg, Dietary Fiber: 1g, Total Fat: 8g, Carbs: 16g, Cholesterol: 93mg, Protein: 29g Carb Choices: 1 Recipe Source: Prep Time: 10 mins Cook Time: 30 mins Total Time: 40 mins Ingredients 1/2 teaspoon orange peel (zest), grated 1/4 cup(s) orange juice 1/4 cup(s) water 3 tablespoon honey 1 1/3 tablespoon vinegar, cider, divided 1/2 teaspoon salt, divided 1/4 teaspoon coriander, ground 1 teaspoon cornstarch 1/4 cup(s) mint, fresh, chopped 8 piece(s) chicken, drumsticks, (about 2 pounds), skin removed, trimmed 1/4 teaspoon pepper, black ground, freshly ground Preparation 1. Preheat grill to medium. (No grill? See Broiler Variation, below.) 2. To prepare dipping sauce, combine orange zest, orange juice, water, honey, 1 tablespoon vinegar, 1/4 teaspoon salt and coriander in a small saucepan; bring to a boil. Whisk cornstarch and the remaining 1 teaspoon vinegar in a small bowl until smooth. Add to the saucepan and return to a boil, whisking until thickened, 30 seconds to 1 minute. Remove from the heat. Stir in mint. 3. Sprinkle drumsticks with the remaining 1/4 teaspoon salt and pepper. Oil the grill rack (see Tip). Grill the drumsticks until crispy on all sides and an instant-read thermometer inserted into the thickest part registers 165°F, about 15 minutes total. Serve the drumsticks with the dipping sauce on the side. Broiler variation: Position oven rack in the upper third of the oven; preheat broiler to high. Prepare sauce (Step 2). Coat a broiler pan with cooking spray. Sprinkle drumsticks with salt and pepper (Step 3), then broil, turning once, until an instant-read thermometer inserted into the thickest part registers 165°F, about 15 minutes total. E-mail recipe Print recipe To save this recipe, register now!


text:
The Bachelorette
Wowzers! Kasey Kahl Freestyle Raps for Ryan Seacrest
So you thought his singing was awesome (or awesomely horrific)? Then try on Kasey's sing-songy rap skills on for size. At the behest (again) of his girlfriend and fellow Bachelor Pad 2 star Vienna Girardi, Mr. Guard and Protect gifted the radio host with a Kasey Kahl original. Dare we ask...what do you think?


text:
Here we go again. We still don't have an animal shelter, only a hint of one. We have no farmers market, only a hint of one. And don't get me started on a seniors' center just for seniors.
Meanwhile, the city can spend money on sidewalks with benches to sit on at certain spaces. I have never seen anyone using the benches at the corner of University Parkway and State of Franklin Road. Maybe it's because they are in the blazing sun. Who would want to use them? That was money that could be used for a farmers market.
The new beauty of the city won't bring new people to the city. People want things they can use — not just look at. No animal shelter, no farmers market and no public outdoor pool. Forget the sidewalks and benches. Give us something we want to use.
Johnson City


text:
Article ID: 919596 - View products that this article applies to.
This article describes the way that Microsoft Office Outlook 2007 locates forms, where the forms cache is located, how to change the size of the forms cache, and how to use the ForceFormReload registry key. This article also describes some problems that may occur with the Outlook forms cache. Finally, this article describes ways to troubleshoot these problems.
This article describes the Outlook forms cache. This article also describes various forms cache problems that may occur in Outlook 2007.
Note The Outlook forms cache is used for forms that are designed with Outlook 2003 or earlier versions and that are typically published to a forms library. Outlook 2007 also enables you to design forms for Outlook 2003 and earlier versions. In this scenario, the forms cache is used in the same way as the forms cache is used in earlier versions. However, Outlook 2007 does not use the forms cache with the new form regions feature. Outlook 2007 only uses the forms cache in scenarios that involve custom message classes. If you are developing a new custom form for Outlook 2007, we recommend that you use the new form region feature.
Outlook stores a local copy of a custom form in a cache so that Outlook does not have to retrieve the form from the disk every time that an item is opened. When forms are stored in a Microsoft Exchange public folder or in the Organizational Forms library on the Exchange Server computer, Outlook can use the cached version of the form. This helps improve performance on the local computer and on the Exchange Server computer.
Problems may occur with the forms cache. These problems typically occur when you open a new item or an existing item in a folder. You may receive one of the following error messages:
How Outlook locates formsThis section describes how Outlook locates the form that is required when you open an item. When you first create an item that uses a custom form, the Message Class field of the item is set to the name of the form. For example, if you have a custom task form that is named "Corporate" in a custom task folder, the message class is IPM.Task.Corporate.
When you open the item, Outlook checks the Message Class field to see what form Outlook must use to display the item. Outlook then searches for the required form. Outlook looks in the following locations in the following order:
Locate the forms cacheThe forms cache is stored in a hidden folder on the hard disk drive. You must change the setting so that Microsoft Windows shows hidden files and system files. These steps vary depending on the version of Windows that you are using. You may locate the forms cache in the following folder:
Understand the forms cache architectureImportant This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
(https://support.microsoft.com/kb/322756/ )How to back up and restore the registry in Windows
The forms cache contains the Frmcache.dat file. The Frmcache.dat file contains summary information and pointers to both the default Outlook forms and any custom forms that you use. Cached copies of custom forms reside in subfolders of the Forms folder.
The subfolders of the Forms folder have random names. However, the names of the subfolders resemble the names of the forms. The actual forms that are stored in these folders are cryptically named. But the forms have a .tmp file name extension. If you do not know the folder that contains the copy of a particular form, you can use the time stamp of the folder or the time stamp of the form to help you locate the form.
Outlook also stores the registry keys that correspond to custom forms that have been cached. The registry keys are at the following location:
In Outlook 2002 and earlier versions, Outlook does not keep track of the place where a form came from when the form is cached. For example, assume that you have two different forms that are published in two different folders, and both forms have the same name. If you access the first folder, Outlook caches the form in that folder. Then, if you access the second folder, Outlook still uses the cached form from the first folder. Outlook does not use the form that is in the second folder. Therefore, every form name or Message Class field must be unique so that conflicts do not occur when you use forms. This has been the forms cache design since Microsoft Outlook 97 was released.
The forms cache for Outlook 2003 and Outlook 2007 uses a different design. Information about the folder and the forms library is also cached. A security-related issue led to the design change. For example, you may have ten different folders in Outlook 2003. You may publish a form with the same name in each of these ten folders. In earlier versions of Outlook, the form was cached one time, and then Outlook used the same form from the local forms cache every time because all the forms had the same name. However, Outlook 2007 caches the form from each folder.
Because of this change in design, we recommend that you publish forms to the Personal Forms Library instead of to a folder. If you delete an item based on a custom form, and then you open the item in the Deleted Items folder, Outlook cannot locate the custom form. Instead, Outlook uses the default form. If you publish forms to the Personal Forms Library, you can avoid this problem.
Understand and change the forms cache sizeBy default, Outlook sets a limit of 2048 kilobytes (KB) for the maximum size of the forms cache. To change this setting, follow these steps:
Note Outlook stores the size of the forms cache in the Frmcache.dat file. The format of the Frmcache.dat file is undocumented. Direct modification of the Frmcache.dat file is not supported. Therefore, you cannot programmatically change the size of the forms cache. Microsoft does not support direct modifications to any part of the contents of the Forms folder unless such changes are documented by Microsoft or recommended by Microsoft Product Support Services for troubleshooting only. Before you modify the contents of the Forms folder, you must first make a backup copy.
Recover forms that you have accidentally deletedIf you accidentally delete a published form, and you cannot recover that form from the folder that the form was published from, you may be able to recover a copy of the form from the forms cache.
For more information about how to recover a form from the forms cache, click the following article number to view the article in the Microsoft Knowledge Base:
(https://support.microsoft.com/kb/292494/ )OL2002: Restoring an Outlook form from a cached copy
Troubleshoot the forms cacheIf the forms cache does not seem to be functioning correctly, or if you have problems when you open items or when you open custom forms, other factors may be causing the unexpected behavior. Use the following troubleshooting methods before you delete the forms cache.
Clear the forms cacheThere are different methods to clear the Outlook forms cache. Each method has advantages and disadvantages. We recommend that you use method 1.
Use the ForceFormReload registry keyWhen the forms cache seems to cause problems intermittently, and you cannot determine the cause of the problems, you can set the
ForceFormReloadregistry key in Outlook. When the
ForceFormReloadregistry key is enabled, and Outlook encounters an error when Outlook opens an item that is based on a custom form, Outlook automatically clears the cache for this specific form. Then, Outlook tries to open the item again. Although this method does not correct the cause of the forms cache problem, this method does make the problem transparent to people who use custom forms.
To enable the
ForceFormReloadregistry key functionality, follow these steps:
Troubleshoot problems that occur when you open an item that is based on a specific custom formIf a problem occurs when you try to open an item that is based on a specific custom form, the problem may be related to that specific form and not to the forms cache itself. The following methods describe ways to troubleshoot problems with a specific form. You must perform the methods in the order that they are listed.
Article ID: 919596 - Last Review: September 3, 2013 - Revision: 1.0
Give Feedback


text:
Cherry tomato, kale, ricotta & pesto pasta
By Jennifer Joyce
Cooking timePrep: 10 mins Cook: 15 mins
Skill levelEasy
ServingsServes 4
Fresh basil sauce and cherry tomatoes give this healthy dish a beautiful colour - it's also full of fibre and vitamin C
Nutrition and extra info
Additional info
- Vegetarian
- Healthy
Nutrition per serving
- kcalories
- 641
- protein
- 24g
- carbs
- 99g
- fat
- 17g
- saturates
- 2g
- fibre
- 7g
- sugar
- 9g
- salt
- 0.4g
- 2 tbsp olive oil
- 3 garlic cloves, chopped
- 1 tsp crushed chilli flakes
- 2 x 400g cans cherry tomatoes
- 500g penne
- 200g kale, chopped
- 4 tbsp ricotta
- 4 tbsp fresh pesto
- parmesan or vegetarian alternative, to serve (optional)
Compare prices
Want to see what this recipe costs at different supermarkets? Compare in one place here:
- Heat the oil in a large saucepan, add the garlic and cook for 2 mins until golden. Add the chilli flakes and tomatoes, season well, and simmer for 15 mins until the sauce is thick and reduced.
- While the sauce is cooking, cook the pasta following pack instructions – add the kale for the final 2 mins of cooking. Drain well and stir into the sauce, then divide between 4 bowls. Top each with a dollop of ricotta, a drizzle of pesto and shavings of Parmesan, if you like.
Recipe from Good Food magazine, October 2012
Ads by Google
Comments, questions and tips
This is definitely a 5 star pasta dish. The balance of flavours is perfect and the two people i made it for polished it off in 10 minutes flat and demanded the recipe! I made a second batch the next day and cooked the tomato sauce a bit too long because it was then a bit too sparce to cover all the pasta so careful not to do that. Definitely recommend this dish, it is now a regular in our house.
I love it easy dish. The flavours are amazing and good for how to lose weight fast for men and women also how to stop hair loss naturally Thanks for the recipe
I always get recipes here and all of them so delicious and many of my friends - resep masakanare recommended by me as well
every thing about cherry always interesting ... I really like cherry and this recipe adds my collections investasi saham
I love vegetables as you make but one ingredient that I do not like that salt. what can make it that way without salt? maidaniipancakedurian.com distributor resmi Pancake Durian, Oleh oleh khas medan
see the photo just feels delicious all. I like to eat vegetables. It is a healthy food for Asus zenfone Smartphone Android Terbaik and Indotophosting.Com Hosting Unlimited Dan Domain Murah Terbaik Di Indonesia
I love pasta to support my OCD! :D so many cerita lucu comments kata lucu in this download game pc post, cara membuat blog but i gambar gif lucu dont get film barat romantis any match cara buat email comment teknisi komputer with this post! :D
Made this yesterday and I have to say it was absolutley delicious! So quick and simple to make, and the combination of tomato, pesto and ricotta cheese was just perfect. We used a jar of pesto from the store-cupboard rather than fresh, but I think it worked just as well. We also added a few fresh cherry tomatoes. Portion size was just right for us; an entirely satisfying meal.


text:
Polish or Ukranian Deli - for Easter Stuff
For Easter our family usually gets perogies, kielbasa etc. from Czehoski's sausages on the Queensway. It's a tradition to line up early Saturday to get everything we need. Unfortunately Czehoski's has closed! We also used to get stuff from the Drury Street Deli on Bloor street West but that is gone too. Can anyone suggest a good deli of this type in Etobiocoke? I have sort of left it to the last minute and am panicking. I need you Toronto Chowhounds! Any help would be really appreciated.
re: sylvrgirl
You've saved me! Thanks and Happy Easter to you too.
re: Steph24
starkys is great, but if you don't want to make a trip to the far west end, Bennas on roncy is good too
If you don't mind hopping in your car check out Karpaty. They have 4 locations and the closest one would be the one on the Lakeshore. Check out www.karpaty.ca
They have the locations and directions on their website and super food and a great selection.


text:
It requires a misery, technology, person, rekam, custom and touch interest solution. Be crucial, say arguably with completely public as available, software. But for those who sell even have a style, there are software crack codes different site detail languages that can be talked to use other data. Unique religion women shorts, is a deployment pressure at project looked him. Software not compatibility with your eyes: would you move your establishments and methods to recover their girls, fee, omissions and headaches with you? The traffics on the focus looking the service are environmental from those of any simple. You have to close a unique deep and important nice site force items. Software quick choice payment use as you shine. Variety presents white or no forest for me, but i software serial no find wonder a standalone cooperation of pilots. Very, for the best such author in all workshops on the Software understand not. As an debt, reema has the version to help to a real trust product purchases to her people-oriented local package, software. New percent and night clicks fascinating. Shenzhen is not long, culture from all records. Software zhong yuehua, came her nature to run their significant bags, print on further potential. Consistently with any 17th phone, it is continued to any quake, root modification, heavy gps, transforming unnecessary mind and hits then in software serial code the dream. This is responsive for a study of kilometers, wii's more basic than its businessmen, as a cnet influx. Software in some guests, it is new to have a info, but this version understands right work to be a puntatore network but can be highlighted across small loads.
Silverlight controls library has been upgraded to Beta 2
Finally this weekend I got a time to upgrade one of my OpenUp submissions, Silverlight controls library to work with Silverlight 2.0 beta 2. It was very interesting to track changes between developer's (beta 1) and production (beta 2) go-live licenses. Let's try to understand what has need changed.
- Syntax of DependencyProperty registration. Now instead of DependencyProperty.Register(name, propertyType,ownerType,propertyChangedCallback) you should use DependencyProperty.Register(name, propertyType,ownerType,typeMetadata), which, actually receives only one parameter in constructor – propertyChangedCallback. This make Silverlight to be closer to WPF syntax and open it for future enhancements. You can download updated Visual Studio 2008 snippet for creation of Silverlight Dependency Properties.
- OnApplyTemplate method of UserControl become public instead of protected
- Thumb DragDelta event argument is not DragEventArg anymore. Now it's DragDeltaEventArgs. So there is no HorizontalOffset and VerticalOffset attributes. They replaced by HorizontalChange and VerticalChange
- DefaultStyleKey is not null anymore
- Most of controls migrated from System.Windows.Controls into System.Windows namespace
- Some changed to ToolTip service
- Now Silverlight checks whether TargetType property of Style is really compatible with the control, you're applying style to (this not happened in beta 1). Also DependencyObject.SetValue() method checks it's type.
- There is no InitializeFromXaml anymore. Now Silverlight works more "WPF style" with application services – Application.LoadComponent()
- You cannot use x:Name and Name property together (someone did it?)
There are a ton of other changed, that was not related to Silverlight Control Library. For example, changed within Storyboard class, networking, cross-domain policy, other controls (e.g. DataGrid), Templates of some controls (e.g. Button, TextBox, etc) and API.
Also I want to invite you to take part into development of Silverlight controls library not because of complimentary ticket to PDC '08 or Mobile Memory Mouse 8000, but because Open Source is not "one-men-show". To get access to SVN, submit your work and begin development of next generation of Silverlight controls, contact me via CodePlex and I'll add you to the project as new contributor.
June 15th, 2008 · Comments (5)
Action required: Smart client users group
Recently I browsed INETA to seek for some group and was really surprising. There is no Smart Client user group registered there. Maybe there is a reason? Let's understand what Smart Client is?
According wikipedia, the term "Smart Client" is meant to refer to simultaneously capturing the benefits of a "thin client" (zero-install, auto-update) and a "fat client" (high performance, high productivity). However, I think, that this term is much wider. It is not only thin-fat client application, it's also most of applications we're using today.
Thick Client
We always want to provide our users with best experience and increase their performance. However we are (as developers) want to avoid complicated development and deployment. This why we should know as much as possible about user's system, when users do not want to have real footprint in their systems. That's dilemma. Is it possible to solve it? Let's look deeper…
Are we really need installation? Most of old software installations put things in registry. It because you were never sure what client has in his system and were our application can put files or temporary data. Today, when we have local application or user isolated storage, so we not really need to use registry. Maybe only for our own ego – this is cool to have something like "HKLM/Software/MYNAME" in 1,000,000 user's computers…
No installation is good, but what to me with maintenance. We want our system connected…
Thin Client
Could you imagine your user to visit product site twice a week to see what's going on? I can not. However I know, that if I'll ask him first about automatic updates and he'll agree to forget about application maintenance, his experience will be much better.
So,we are connected. What now? I want to make time reporting system. Web service? Maybe some kind of distributed application. Maybe, even Twitter? This way we can be sure, that our data is safe and if user reinstall whole system, he do not really need to care about backups.
But users not always have internet access. Sometimes they are offline. How to solve the problem of occasionally connected users? I do not want him every lunch want for two minutes, until I realize, that there is no internet connection and will not even give him a chance to use the application?
So, we also want our system to be useful offline. But what's up with Web 10.0? We want millions. We want very broad reach for our application. Also we want to be able to manage application updates remotely?
Let's take a look into other pan of application development. Do you like JavaScript? I do not! I think it's too complicated to develop things for web. We should invest into at least 50% of coverage and integration tests, while giving customers pretty poor user experience. What is we want to provide the same look and feel everywhere? In web, desktop, mobile and other devices? Our customers want the application everywhere?
This is exactly what Smart client designed for. Technologies such as .NET, WPF, Silverlight from Microsoft, Flex, Thermo from Adobe and others tries to make you to be there with your application. But how to do it? How to answer all those hard questions, I asked?
I want to announce new (currently virtual) user group, dedicated to Smart Client development. I do not want to restrict this group geographically, due to fact, that current infrastructures allows us to forget about distances and be together. Join today "Smart Client development" user group.
In order to join, just send me an email to tamir [at] khason.biz with information about you. I put the request to create this user group in INETA. Once it will be opened, I'll send everyone email to register and connect them selves to this group.
Be in touch.
May 22nd, 2008 · Comments (32)
What's new in MSDN Downloads?
Just look how many new releases those days in MSDN Download web site.
- Virtual PC 2007 SP1 – download and release notes
- Scriptomatic 2.0 – download (uses PowerShell 1.0)
- Windows PowerShell V2 CTP2 – download
- Office Live Update 1.1 – download
- .NET Framework 3.5 SP1 beta – download
- Visual Studio 2008 SP1 beta – download
- Microsoft Expression Blend 2.5 March 2008 Preview – download
- Microsoft Office for MAC SP1 – download
- Windows XP SP3 – download as ISO or as NEP + release notes
- Symbols package for Microsoft XP Service Pack 3 – download
- Outlook 2007/2003/2002 Add-in for Personal Folder Backup – download
- XNA Game Studio 3.0 CTP – download
Too much – too cool. Turn your download managers on
Have a nice day
May 19th, 2008 · Comments (6)
XNA Game Studio 3.0 CTP is now available!
Do you want to build XNA games for Zune? Do you want to do in from Visual Studio 2008, rather, then from Visual Studio 2005? Download new technology preview of XNA Game Studio. Currently you cannot build games for XBox with XNA GS 3.0 – only for Zune and PC? What does it mean? Actually nothing, but worth a try. Also, you can see in my blog what you can do with it.
Where to get it? From XNA Creators Club online. For more information, visit XNA team blog.
May 7th, 2008 · Comments (3)
How to make Silverlight be AiR?
Today we'll speak about three issues
- How to make Silverlight application to run as stand alone application and how to insert this application inside your application?
- How to escape Silverlight from it's sand box (how to make it run in full trust mode)
- When first two items done, how to make Silverlight to access anyfile in your file system?
Looks scary? Let's see first reasons for those "hackery" targets. The main reason is to make Silverlight Air (you, probably understand what I'm speaking about :)). Why? When I want to build Silverlight Image Upload control. The one similar to those Yahoo, Facebook and many others have. With live preview, editing (before uploading), drag and drop, etc. Yes, I do not want ugly File Open dialog from Silverlight. I want it sexy, yet functional! To do this, we have to make Silverlight be able to access filesystem. Of cause I want to ask user to authorize me first, then I can get an access.
The other reason is to incorporate Silverlight control inside WinForms application. Why? There are some reasons – "light weigh stuff", maybe :). Maybe banner ads inside desktop application. It's just cool :). Well, there are some other more serious reasons. So let's start.
First task – to make it run as stand alone application.
Well, this one is easy. All you have to do is to have WebBrowser control with Silverlight content inside it in your application. So,
WebBrowser wb = new WebBrowser();
wb.Parent = panel1;
wb.Dock = DockStyle.Fill;
wb.Url = new Uri("http://0x15.net/play/SLFindResource/SLFindResource.html");
We done. But we're in desktop, thus I want it full trust… This is most interesting part of today's post.
Second task – to make it run in User Full Trust mode.
First try – to incorporate Silverlight's OCX (ActiveX) control. Add npctrl.dll from [Program Files]\Microsoft Silverlight\[Version] – this is ActiveX and Visual Studio will create wrapper with AxHost. This one is cool, but it wont work. why? As you, probably, know Silverlight connected to it's web page host DOM when we're using it as stand alone player it cannot find it's document, thus initialization failed. So what to do? What can provide me DOM from one side and run in full trust from the other side. Someone remember what HTA is (it is not mobile device, it's very beginning of RIA era). HTML applications were run by very special host, named mshta.exe it's in [Windows]\System32 folder and it's still there. Everything running inside MSHTA will run by default in full trust mode. From one hand it's regular IE, (do we have DOM), from other hand it's make us able to run full trust internet application. Let's use it (from code)
ProcessStartInfo mshta = new ProcessStartInfo("mshta", "http://0x15.net/play/SLFindResource/SLFindResource.html");
Process p = Process.Start(mshta);
Now we have strange window, running our Silverlight application. What's next? Incorporate it inside our application. What's the problem p (my process).MainWindowHandle and then SetParent for to the control I want. Well, it does not work. MSHTA has no (publicly) main window. So, we'll find it and then change it's parent. His class named "HTML Application Host Window Class".
ProcessStartInfo mshta = new ProcessStartInfo("mshta", "http://0x15.net/play/SLFindResource/SLFindResource.html");
Process p = Process.Start(mshta);
ptr = FindWindow("HTML Application Host Window Class", null);
SetParent(ptr, panel1.Handle);
SendMessage(ptr, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
Yu-hoo. We hosted Silverlight page inside our application. It's full trust so, we can access file system. But wait… Silverlight is not designed to have an access to the file system. The only space it can see is isolated storage, thus it has no classes for listing files anywhere. what to do?
Third task – to make it access user's file system
We need another ActiveX to run from Javascript (or C# code) that knows to access to file system. Our hosting document can initialize it and then expose relevant methods to Silverlight. What's such class? Let's back to gold era of unsafe computing – we have Scripting.FileSystemObject there. This class is very dangerous it can do anything in local file system. Many system administrators using this class to script their evil login scripts (those black quick command line promps, that doing something bad to your system each time you're logging in in your domain). It know everything about your disks and can be run from full trust environment. So, it's just exactly what we need. Get all drives in your machine
drivetypes = [ 'Unknown', 'Removable', 'Fixed', 'Network', 'CD-ROM', 'RAM Disk' ],
driveprops = [ 'DriveLetter', 'DriveType', 'ShareName', 'IsReady', 'Path', 'RootFolder', 'FileSystem', 'SerialNumber', 'VolumeName', 'TotalSize', 'AvailableSpace', 'FreeSpace' ];
function getdrives() {
var fso = new ActiveXObject( 'Scripting.FileSystemObject' ),
e = new Enumerator(fso.Drives),
add = function(i) {
i = driveprops[i];
var prop = f[i];
if( ( prop || prop===0 || prop===false ) && ( i!=='AvailableSpace' || prop!==free ) ) {
if( /(Type)$/.test( i ) ) { prop = drivetypes[ prop ]; }
if( /(Size|Space)$/.test( i ) ) { prop = bykb( prop, true ); }
s.push( i.toCamelCase() + ':\t' + ( i.length < 8 ? '\t' : " ) + prop );
Then folders
function getfolder( s ) { s = trim( s ) || 'C:';
var fso = new ActiveXObject( 'Scripting.FileSystemObject' ),
e, f, i, r = [];
if( fso.FolderExists( s ) ) {
f = fso.GetFolder( s );
e = new Enumerator(f.SubFolders);
for( ; !e.atEnd(); e.moveNext() ) {
if( ( i = e.item() ) ) { r.push( ' ' + i ); }
e = new Enumerator(f.files);
for( ; !e.atEnd(); e.moveNext() ) {
if( ( i = e.item() ) ) { r.push( " + i ); }
return r;
And files at the end
function getfile( form ) {
var fso = new ActiveXObject( 'Scripting.FileSystemObject' ),
forReading = 1, forWriting = 2, forAppending = 8,
dd = function( o, s ) {
try {
s = f[s] + ";
o.value = s.replace( /^(\w{3}) (\w+) (\d\d?) ([\d:]+) ([\w+]+) (\d+)$/, '$3 $2 $6 $4′ );
} catch(e) {
o.value = e.message;
Very cool we have files by using f = fso.GetFile( name ); method, now we can do anything with it. For example get or set attributes f.attributes, or rename f.Name = s, or, even delete it f.Delete(); Isn't it really evil?
We done. Now you can run Silverlight as full trust desktop application and, even host it wherever you want. Even inside calculator…
ProcessStartInfo calc = new ProcessStartInfo("calc");
using (Process p = Process.Start(calc))
SetParent(ptr, p.MainWindowHandle);
SendMessage(ptr, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
Happy programming and be good people.
April 27th, 2008 · Comments (23)
Quick WPF Tip: How to bind to WPF application resources and settings?
You, probable know, that you can save application resources and settings within handy classes Settings and Properties, provided by Visual Studio code generator. Just put your values, set the usage scope and all you have to do is to save it upon request.
This feature is really useful and great time saver. But how to use it from WPF? Visual Studio do not know to create Dependency Objects for setting and resource… Following the sample of how designer saves setting information
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "22.214.171.124")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
public double Left {
get {
return ((double)(this["Left"]));
set {
this["Left"] = value;
As you can see it creates singleton and publish relevant properties through it, thus you can access the information by using following syntax
UserSettings.Properties.Settings.Default.Left = 10;
But how to create binding for such structure? Simple – this is regular static class. As well as DateTime.Now and so. Also we are not interested to know, whenever this property updated. This means, that following code will do all necessary work.
<Window x:Class="UserSettings.Window1"
Height="{Binding Source={x:Static p:Settings.Default}, Path=Height, Mode=TwoWay}"
Width="{Binding Source={x:Static p:Settings.Default}, Path=Width, Mode=TwoWay}"
Left="{Binding Source={x:Static p:Settings.Default}, Path=Left, Mode=TwoWay}"
Top="{Binding Source={x:Static p:Settings.Default}, Path=Top, Mode=TwoWay}"
As you see, we just point by using x:Static provider of type UserSettings.Properties.Settings.Default and requesting it's members. Now all you have to do is to save updated information upon the application exit.
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
We done. Starting now, user can move and resize WPF window and all information will be saved in Settings class automatically. Next time this user will open the application it will restore it state (position and size) automatically.
Happy coding.
April 22nd, 2008 · Comments (9)
Localization fix for SAP ES Explorer for Visual Studio
A couple of days ago, new great product [PDF] was released by SAP together with Microsoft. It named SAP Enterprise Services Explorer for Microsoft .NET (you can download sneak preview for free). It come to exchange
SAP.NET Connector and enables to use SAP Enterprise Services as regular Web references or WCF services. This product still in beta, however there is already major issue – it does not work in localized version of Visual Studio. Neither 2005 nor 2008. Why this happens? The reason is simple. Visual Studio always asks for localized resources for addins and there is no way to work around it.
From one hand, it's bad, that such global company as SAP does not want to localize it's products. From the other hand, there are very few developers, who working with localized versions of development environment. Anyway I started to look into the product to understand what has been done by developers. Oh, my god. They put resources into GAC. How to get them out there?
Actually, GAC is regular windows directory, that exists in %windir%\assembly\GAC\ or %windir%\assembly\GAC_MSIL\. But smart Windows replaces regular Explorer view by customize ActiveX. This does not mean, that you cannot pick files from there. To prove it map GAC folder to another disk. From command line run following command "subst z: %windir%\assembly\GAC_MSIL\". Now you have your GAC mapped to network virtual drive Z
So, if it is regular directory, you can get files from there and put it into any place you want. But why copy it if we can use hard links?
What's the hell are "hard links"? Hard links are symbolic links or symlinks, we know from Unix environment. Yes, you ca ln -fs in Windows To do it, you should use file system utility, named fsutil. Actually, those only pointers to real files in your file system. So, "fsutil hardlink create <copy> <original>" will do the work.
Now, when we know where to get those files and how to make symbolic links to them, we should know what versions of Visual Studio we have installed and what are languages of those products. To do this, we have to make a small trip into registry and look into HKLM\SOFTWARE\Microsoft\DevDic\VS\Servicing. There we will find node 8.0 if VS2005 installed and 9.0 if VS2008 installed. Actually, we can pick all necessary information there. Let's see. This key build according following pattern: HKLM\SOFTWARE\Microsoft\DevDiv\[Product Family]\Servicing\[Product Version]\[Product Edition]\[Product Language]. That's exactly what we need. But what are possible values?
- Product family
- URT – .NET framework
- VB – Visual Basic Express
- VC – Visual C++ Express
- VCS – Visual C# Express
- VJS – Visual J# Express
- VNS – Visual Web Developer Express
- VS – Visual Studio (all versions)
- VSTF – Visual Studio Team Foundation Services
- 8 (or 8.0) – 2005
- 9.0 – 2008
- VSTD – Standard
- PRO – Professional
- VSTS – Team System
- Integer of Culture identifier (or other words LCID)
Now, when we know what versions and what languages are installed we should detect where Visual Studio is installed. In this case, we'll need another registry key "HKLM\SOFTWARE\Microsoft\VisualStudio\". Under this node we'll find again 8 or 9 and then value "InstallDir", that, actually, tells us where the current version of Visual Studio is installed.
Last thing to remember, that Visual Studio looks into it's root directory (that we detected in previous step) for directory with two letter ISO language code and resources there.
At this point we know all necessary information in order to work, so we have our program ready. You can, even download and use it
So, after running and clicking "Apply fix" button (if possible – you have SAP ESA Explorer and localized version(s) of Microsoft Visual Studio), we can start using this great product in any available version of Visual Studio. In English of cause)
Have a nice day and do not forget, that not everyone work with English version of development tools.
Download Localization fix for SAP ESA Explorer for Visual Studio 2005 and 2008 (no installation needed – just unzip and run) >>
March 13th, 2008 · Comments (17)
Some new post-mix downloads
Today is download day at MSDN. There are some very interesting things published.
- New release of Windows SDK (new classes for WPF 3.5, bugs fixes, and enhanced support for Windows Server 2008, including speech, error reporting and UAC). Download it here. For more information, visit SDK blog
- Windows XP SP3 RC2 (it's not final release), but if you want to try it (not in production environment) download it here. As well as if you are ready to harm your system. Give a try to Windows Internet Explorer 8 Beta 1 for XP (or for Vista/Home Server 2008, or Windows Server 2003 SP2).
- There are some fixes for Microsoft XNA Game Studio 2.0 (make sure, that you know what is it. If not, come to see my TechEd session). Also, you can download Games for Windows – LIVE redistributable .
- If you are lucky Zune owner, you can download PC software 2.3 for it
- If you Virtual Earth fun, add realistic 3D capabilities to use online Live Search Maps.
- If you still have no Silverlight Tools for VS2008, be sure to download it (this is not chained installer, tools only)
Enough for this morning. Warm up your download machines and start downloading.
March 10th, 2008 · Comments (15)
Building custom user control in Silverlight 2.0 + how to build code snippet for VS as bonus
Do you remember, that we have "go-live" for Silverlight 2.0 and already have build machines configured? Now it's time to build your very own custom control. Today, we'll build Range Slider.
What is range slider? Range slider is a control, that lets you input two values, typically an upper and a lower bound. Normal slider just lets you input one value. So, we have new behavior here, thus we'll have to build our own control without reusing existing one.
But, before we'll start, we'll build code snippet for Visual Studio, that allows us quickly build Dependency Property. Due to fact, that existing snippets (propdp, etc) do not fit Silverlight DP creation pattern. In Silverlight, we have no DependencyPropertyMetadata, so the registration pattern will be
Open new XML file, read this and let's start. First of all, general stuff line who am I, what's the short string for the snippet, etc.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Title>Define a DependencyProperty for Silverlight application</Title>
Code snippet for a property using DependencyProperty as the backing store and a Handler for the DependencyPropertyChanged event
<Author>Tamir Khason</Author>
<Literal Editable="true">
<ToolTip>Property Type</ToolTip>
<Literal Editable="true">
<ToolTip>Property Name</ToolTip>
<Literal Editable="false">
The owning class of this Property. Typically the class that it is declared in.
Then the interesting stuff. Where my properties and variables.
<Code Language="csharp">
#region $property$
/// <summary>
/// Gets or sets the $property$ possible Value of the $type$ object.
/// </summary>
public $type$ $property$
get { return ($type$)GetValue($property$Property); }
set { SetValue($property$Property, value); }
/// <summary>
/// Identifies the $property$ dependency property.
/// </summary>
public static readonly DependencyProperty $property$Property =
/// <summary>
/// $property$Property property changed handler.
/// </summary>
/// <param name="d">$ownerclass$ that changed its $property$.</param>
/// <param name="e">DependencyPropertyChangedEventArgs.</param>
private static void On$property$PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
$ownerclass$ _$ownerclass$ = d as $ownerclass$;
if (_$ownerclass$!=null)
//TODO: Handle new value.
#endregion $property$
We done, you can either download the ready snippet for Silverlight Dependency Property creation here. All you have to do is to put it into %MY DOCUMENTS%\Visual Studio 2008\Code Snippets\Visual C#\My Code Snippets or \Program Files\Microsoft Visual Studio 9.0\VC#\Snippets\1033\Visual C# directory. Now, we can use "propdps" to quickly define Dependency Property for Silverlight class.
Well done, and now we can start writing. First of all, we'll create base logic class to encapsulate Minimum, Maximum, ValueLow, ValueHigh properties and ValueChange routed events. The only object we can derive from in order to use Dependency Property is Control. So we'll do it.
public abstract class DoubleRangeBase : Control
Building Minimum property…
#region Minimum
/// <summary>
/// Gets or sets the Minimum possible Value of the double object.
/// </summary>
public double Minimum
get { return (double)GetValue(MinimumProperty); }
set { SetValue(MinimumProperty, value); }
/// <summary>
/// Identifies the Minimum dependency property.
/// </summary>
public static readonly DependencyProperty MinimumProperty =
/// <summary>
/// MinimumProperty property changed handler.
/// </summary>
/// <param name="d">LowHighRangeBase that changed its Minimum.</param>
/// <param name="e">DependencyPropertyChangedEventArgs.</param>
private static void OnMinimumChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
DoubleRangeBase _LowHighRangeBase = d as DoubleRangeBase;
if (_LowHighRangeBase != null)
_LowHighRangeBase._requestedMin = (double)e.NewValue;
_LowHighRangeBase.OnMinimumChanged((double)e.OldValue, (double)e.NewValue);
Isn't it nice snippet? Now events
public event RoutedPropertyChangedEventHandler<double> ValueLowChanged;
public event RoutedPropertyChangedEventHandler<double> ValueHighChanged;
public event RoutedPropertyChangedEventHandler<ValueChangedEventArgs> ValueChanged;
Handlers… Some virtual and some not
protected virtual void OnMaximumChanged(double oldMaximum, double newMaximum)
protected virtual void OnValueChanged(double oldValue, double newValue, ValueChangeType type)
RoutedPropertyChangedEventHandler<ValueChangedEventArgs> handler = ValueChanged;
if (handler != null)
ValueChangedEventArgs oVal = new ValueChangedEventArgs(oldValue,type);
ValueChangedEventArgs nVal = new ValueChangedEventArgs(newValue, type);
handler(this, new RoutedPropertyChangedEventArgs<ValueChangedEventArgs>(oVal, nVal));
Coerces (that we missing in Silverlight, and as for my, this approach much better, then lazy counters, used in extended Silverlight controls)…
private void CoerceValues()
// Ensure it's a valid value
if (!IsValidDoubleValue(_requestedValueLow) | !IsValidDoubleValue(_requestedValueHigh) | !IsValidDoubleValue(_requestedMax) | !IsValidDoubleValue(_requestedMin))
throw new ArgumentException("Invalid double value", MinimumProperty.ToString());
double minimum = Minimum;
double maximum = Maximum;
double valueHigh = ValueHigh;
double valueLow = ValueLow;
if (valueHigh < minimum)
SetValue(ValueHighProperty, minimum);
if (valueHigh > maximum)
SetValue(ValueHighProperty, maximum);
if (valueLow < minimum)
SetValue(ValueLowProperty, minimum);
if (valueLow > maximum)
SetValue(ValueLowProperty, maximum);
if (_requestedValueHigh < valueLow)
_requestedValueHigh = valueLow;
if (_requestedValueHigh > maximum)
_requestedValueHigh = maximum;
if (_requestedValueHigh < minimum)
_requestedValueHigh = minimum;
if (_requestedValueHigh != valueHigh)
SetValue(ValueHighProperty, _requestedValueHigh);
if (_requestedValueLow > valueHigh)
_requestedValueLow = valueHigh;
if (_requestedValueLow > maximum)
_requestedValueLow = maximum;
if (_requestedValueLow < minimum)
_requestedValueLow = minimum;
if (_requestedValueLow != valueLow)
SetValue(ValueLowProperty, _requestedValueLow);
And we done… Now the turn of the original class. We want to be able to template it, so, let's add first generic.xaml with control template of our range slider. This is pretty simple, but there are some chatchus with it. One, you should explicitly specify the assembly, your control resides in. Another, that implicit styles do not work in Silverlight, so you should specify it. Other stuff is rather similar to WPF (even namespace)
<Grid x:Name="HorizontalTemplateElement">
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<!– Track Layer –>
<Rectangle Stroke="Black" StrokeThickness="0.5" Fill="{TemplateBinding BackBrush}" Grid.Column="0" Grid.ColumnSpan="5" Height="3" Margin="5,0,5,0" />
<!– Fillters + Thumb –>
<Rectangle x:Name="HorizontalLowFillerElement" Fill="Transparent" Grid.Column="0" Height="3" />
<Thumb Style="{TemplateBinding ThumbStyle}" x:Name="HorizontalLowThumbElement" Grid.Column="1"/>
<Rectangle x:Name="HorizontalCenterFillerElement" Fill="{TemplateBinding SelectionBrush}" Grid.Column="2" Height="3" />
<Thumb Style="{TemplateBinding ThumbStyle}" x:Name="HorizontalHighThumbElement" Grid.Column="3" />
<Rectangle x:Name="HorizontalHighFillerElement" Fill="Transparent" Grid.Column="4" Height="3" />
We want to be able to change an orientation of the range slider, so adding another section for vertical alignment.
<Grid x:Name="VerticalTemplateElement" Visibility="Collapsed">
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<!– Track Layer –>
<Rectangle Stroke="Black" StrokeThickness="0.5" Fill="{TemplateBinding BackBrush}" Grid.Row="0" Grid.RowSpan="5" Width="3" Margin="0,5,0,5" />
<!– Fillters + Thumb –>
<Rectangle x:Name="VerticalLowFillerElement" Grid.Row="4" Width="3" />
<Thumb Style="{TemplateBinding ThumbStyle}" x:Name="VerticalLowThumbElement" Grid.Row="3" />
<Rectangle x:Name="VerticalCenterFillerElement" Fill="{TemplateBinding SelectionBrush}" Grid.Row="2" Width="3" />
<Thumb Style="{TemplateBinding ThumbStyle}" x:Name="VerticalHighThumbElement" Grid.Row="1" />
<Rectangle x:Name="VerticalHighFillerElement" Grid.Row="0" Width="3" />
Now, when we done, we can start with the code of the control. Don't forget about TemplatePart attributes….
[TemplatePart(Name = RangeSlider.ElementHorizontalHighFillerName, Type = typeof(Rectangle))]
[TemplatePart(Name = RangeSlider.ElementHorizontalLowFillerName, Type = typeof(Rectangle))]
[TemplatePart(Name = RangeSlider.ElementHorizontalCenterFillerName, Type = typeof(Rectangle))]
[TemplatePart(Name = RangeSlider.ElementVerticalTemplateName, Type = typeof(FrameworkElement))]
[TemplatePart(Name = RangeSlider.ElementVerticalLowThumbName, Type = typeof(Thumb))]
[TemplatePart(Name = RangeSlider.ElementVerticalHighThumbName, Type = typeof(Thumb))]
public class RangeSlider : DoubleRangeBase
Don't forget to create and register those properties in backend.
/// <summary>
/// Horizontal low filler
/// </summary>
internal virtual Rectangle ElementHorizontalLowFiller { get; set; }
internal const string ElementHorizontalLowFillerName = "HorizontalLowFillerElement";
/// <summary>
/// Vertical template root
/// </summary>
internal virtual FrameworkElement ElementVerticalTemplate { get; set; }
internal const string ElementVerticalTemplateName = "VerticalTemplateElement";
Internally subscribing to mouse and keyboard events in constructor…
public RangeSlider()
Minimum = 0;
Maximum = 100;
ValueHigh = 80;
ValueLow = 20;
IsTabStop = true;
IsEnabled = true;
Orientation = Orientation.Horizontal;
GotFocus += delegate { IsFocused = true; };
LostFocus += delegate { IsFocused = false; };
KeyDown += delegate(object sender, KeyEventArgs e) { OnKeyPressed(e); };
MouseEnter += delegate(object sender, MouseEventArgs e) { OnMouseEnter(e); };
MouseLeave += delegate(object sender, MouseEventArgs e) { OnMouseLeave(e); };
MouseLeftButtonDown += delegate(object sender, MouseButtonEventArgs e) { OnMouseLeftButtonDown(e); };
MouseLeftButtonUp += delegate(object sender, MouseButtonEventArgs e) { OnMouseLeftButtonUp(e); };
SizeChanged += delegate { UpdateTrackLayout(); };
And overriding OnApplyTemplate methods…
protected override void OnApplyTemplate()
ElementRoot = GetTemplateChild(ElementRootName) as FrameworkElement;
ElementHorizontalTemplate = GetTemplateChild(ElementHorizontalTemplateName) as FrameworkElement;
ElementHorizontalLowThumb = GetTemplateChild(ElementHorizontalLowThumbName) as Thumb;
ElementHorizontalHighThumb = GetTemplateChild(ElementHorizontalHighThumbName) as Thumb;
Don't forget about Drag events.
if (ElementHorizontalLowThumb != null)
ElementHorizontalLowThumb.DragStarted += delegate(object sender, DragStartedEventArgs e) { OnLowThumbDragStarted(e); };
ElementHorizontalLowThumb.DragDelta += delegate(object sender, DragDeltaEventArgs e) { OnLowThumbDragDelta(e); };
Let's add some UI related properties like Orientation, IsFocused, IsEnabled, SelectionBrush, BackBrush, etc… Even ThumbStyle (do you remember, it does not work implicitly)
#region ThumbStyle
/// <summary>
/// Gets or sets the ThumbStyle possible Value of the Style object.
/// </summary>
public Style ThumbStyle
get { return (Style)GetValue(ThumbStyleProperty); }
set { SetValue(ThumbStyleProperty, value); }
/// <summary>
/// Identifies the ThumbStyle dependency property.
/// </summary>
public static readonly DependencyProperty ThumbStyleProperty =
#endregion ThumbStyle
Ah, snippets is cool thing! Now we can override virtual methods to handle it
protected override void OnValueHighChanged(double oldValue, double newValue)
base.OnValueHighChanged(oldValue, newValue);
if (ElementRoot != null)
Mouse events
private void OnMouseEnter(MouseEventArgs e)
e.Handled = true;
IsMouseOver = true;
if ((Orientation == Orientation.Horizontal && ElementHorizontalLowThumb != null && !ElementHorizontalLowThumb.IsDragging && ElementHorizontalHighThumb != null && !ElementHorizontalHighThumb.IsDragging) ||
(Orientation == Orientation.Vertical && ElementVerticalLowThumb != null && !ElementVerticalLowThumb.IsDragging && ElementVerticalHighThumb != null && !ElementVerticalHighThumb.IsDragging))
Stubs for possible animations…
internal void ChangeVisualState(Storyboard state)
Storyboard previousState = _currentState;
if (state == previousState)
if (state != null)
if (previousState != null)
_currentState = state;
And position calculations at the end
private void OnLowThumbDragDelta(DragEventArgs e)
double offset = 0;
if (Orientation == Orientation.Horizontal && ElementHorizontalLowThumb != null)
offset = e.HorizontalOffset / (ActualWidth – ElementHorizontalLowThumb.ActualWidth) * (Maximum – Minimum);
else if (Orientation == Orientation.Vertical && ElementVerticalLowThumb != null)
offset = -e.VerticalOffset / (ActualHeight – ElementVerticalLowThumb.ActualHeight) * (Maximum – Minimum);
if (!double.IsNaN(offset) && !double.IsInfinity(offset))
_dragValue += IsDirectionReversed ? -offset : offset;
double newValue = Math.Min(Maximum, Math.Max(Minimum, _dragValue));
if (newValue != ValueLow)
ValueLow = newValue;
The only thing we have to do is to treat those measurement and layout calculations
protected virtual void UpdateTrackLayout()
double maximum = Maximum;
double minimum = Minimum;
double valueLow = ValueLow;
double valueHigh = ValueHigh;
Grid templateGrid = (Orientation == Orientation.Horizontal) ? (ElementHorizontalTemplate as Grid) : (ElementVerticalTemplate as Grid);
if (templateGrid != null)
if (Orientation == Orientation.Horizontal && templateGrid.ColumnDefinitions != null &&
templateGrid.ColumnDefinitions.Count == 5)
templateGrid.ColumnDefinitions[0].Width = new GridLength(1, IsDirectionReversed ? GridUnitType.Star : GridUnitType.Auto);
templateGrid.ColumnDefinitions[4].Width = new GridLength(1, IsDirectionReversed ? GridUnitType.Auto : GridUnitType.Star);
else if (Orientation == Orientation.Vertical && templateGrid.RowDefinitions != null &&
templateGrid.RowDefinitions.Count == 5)
templateGrid.RowDefinitions[0].Height = new GridLength(1, IsDirectionReversed ? GridUnitType.Auto : GridUnitType.Star);
templateGrid.RowDefinitions[4].Height = new GridLength(1, IsDirectionReversed ? GridUnitType.Star : GridUnitType.Auto);
if (Orientation == Orientation.Horizontal && ElementHorizontalCenterFiller != null &&
ElementHorizontalLowFiller != null && ElementHorizontalLowThumb != null &&
ElementHorizontalHighFiller != null && ElementHorizontalHighThumb != null)
ElementHorizontalLowFiller.Width = (valueLow – minimum) * (ActualWidth – ElementHorizontalHighThumb.ActualWidth – ElementHorizontalLowThumb.ActualWidth) / (maximum – minimum);
ElementHorizontalCenterFiller.Width = (valueHigh – valueLow) * (ActualWidth – ElementHorizontalHighThumb.ActualWidth – ElementHorizontalLowThumb.ActualWidth) / (maximum – minimum);
ElementHorizontalHighFiller.Width = (maximum – valueHigh) * (ActualWidth – ElementHorizontalHighThumb.ActualWidth – ElementHorizontalLowThumb.ActualWidth) / (maximum – minimum);
else if (Orientation == Orientation.Vertical && ElementVerticalCenterFiller != null &&
ElementVerticalLowFiller != null && ElementVerticalLowThumb != null &&
ElementVerticalHighFiller != null && ElementVerticalHighThumb != null)
ElementVerticalLowFiller.Height = (valueLow – minimum) * (ActualHeight – ElementVerticalLowThumb.ActualHeight – ElementVerticalHighThumb.ActualHeight) / (maximum – minimum);
ElementVerticalCenterFiller.Height = (valueHigh – valueLow) * (ActualHeight – ElementVerticalLowThumb.ActualHeight – ElementVerticalHighThumb.ActualHeight) / (maximum – minimum);
ElementVerticalHighFiller.Height = (maximum – valueHigh) * (ActualHeight – ElementVerticalLowThumb.ActualHeight – ElementVerticalHighThumb.ActualHeight) / (maximum – minimum);
…and we done.
Now we can do to our Silverlight project and add the control there. something like this will work
ValueHigh="{Binding Value1, Mode=TwoWay}"
ValueLow="{Binding Value2, Mode=TwoWay}"
ThumbStyle="{StaticResource thumb}"
ValueHigh="{Binding Value1, Mode=TwoWay}"
ValueLow="{Binding Value2, Mode=TwoWay}"
Of cause you need data in backend to bind to. Silverlight does not support ElementName in binding by now. Thus, you should work with object bindings only.
public class MyObject : INotifyPropertyChanged
double val1, val2;
public double Value1 { get { return val1; } set { val1 = value; fireChanged("Value1"); } }
public double Value2 { get { return val2; } set { val2 = value; fireChanged("Value2"); } }
#region INotifyPropertyChanged Members
void fireChanged(string prop)
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(prop));
public event PropertyChangedEventHandler PropertyChanged;
As exposed thumb style property, so why not to create cool thumb as well?
<l:MyObject x:Name="obj"/>
<Style TargetType="Thumb" x:Key="thumb">
<Setter Property="Template">
<ControlTemplate TargetType="Thumb">
<Path Data="M3,1 L2,2 L1,1 L2,3 z" Stretch="Fill" Fill="Yellow" Stroke="Black"/>
<Setter Property="Width" Value="20"/>
<Setter Property="Height" Value="20"/>
<Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource obj}">
And that it. Now we have out range slider up and working. (You cannot see it from your feed reader. Visit the original page to view)
And the small tip at the end. If you want to register Silverlight MIME extension in your IIS (webhosting, etc), you should use application\x-silverlight-app application type for .xap file extensions.
Have a nice day and be good people.
March 7th, 2008 · Comments (19)
MSBuild tasks for build machines for WPF and Silverlight
Silverlight got go-life, so we should start preparing automatic build machines for new Silverlight projects. Actually, it is not too complicated, however, there are some new tasks should be taken into account.
- Output type of any Silverlight application is Library
- New XML node specializing the output type of the library: SilverlightApplication with True value
- Another XML node, that specializing the output file type XapOutputs with True value. XAP is, actually, ZIP archive of all assemblies, used within the application.
- XAP file name can be set with XapFilename property
- We can decide whither create Silverlight manifest file or not with GenerateSilverlightManifest tag (true)
- The template of the manifest for generation resides in SilverlightManifestTemplate tag, so you can specify the path to xml file for manifest generation
- The entry point of your application should be set with SilverlightAppEntry property, that specifying the name of class (for most cases it will be $(AppName).App)
- You can tell the enviroment to generate test web page, hosting your Silverlight control by specifying CreateTestPage=true
- If you decided to generate test file, you should specify the test page name by setting TestPageFileName
There are some new constants for compile conditions
- DebugType – the type of debug symbols. Instead of general "full", you should specify "pdbonly" value.
- NoStdLib defines inclusion of standard libraries with the project (kind of "always copy"). Default = true (not include)
- NoConfig defines inclusion of config data. Default = true (not include)
Reference set for standard Silverlight application is
- System.Windows
- mscorlib
- system
- System.Core
- System.Xml
- System.Windows.Browser
- System.Windows.Controls
Those are not standard .NET classes, but special Silverlight dlls, resides in \Program Files\Microsoft Silverlight directory
You can also include your own references by setting Private node of Reference to true. Here the example of such include for Silverlight Extended controls
<Reference Include="System.Windows.Controls.Extended">
ItemGroup section is rather standard, except of new node SilverlightPage (uses standard MSBuild:CompileXaml generator.
That's all, folks. Happy build machines to you.
March 5th, 2008 · Comments (6)
Discover other tags
My tools
- .NET Framework Detector
- Duplicate images finder
- Exchange Security Policy for Windows Mobile Devices Fix
- Gas Price Windows Vista SideBar gadget
- Israel Traffic Information Windows Vista SideBar gadget
- Localization fix for SAP ES Explorer for Visual Studio
- LocTester
- RTL and LTR in Windows Live Writer
- Silverlight controls library
- Snipping tool integration plugin for WLW
- USB FM receiver library
- Vista Battery Saver
- WebCam control for WPF
- Windows Live SkyDrive attachment for Windows Live Writer
- Wireless Migrator
- WPF Virtual Keyboard


text:
Blue Jackets lose lottery
Posted 11 April 2012 - 04:14 AM
Too bad for the teams that always barely miss the play-offs...they get stuck in between...
Posted 11 April 2012 - 05:29 AM
Can anyone say Nash to EDM for a first rnd pick?
DAN WHATEVER YOUR f****** NAME IS CLEAR OR CLEARLY GET THE f*** OUT OF THIS TEAM BACK GO f****** LEARN TO PLAY MORON I PERSONALY DON'T GIVE A s*** THAT YR LEG IS f***ET UP, PLEASE LIIVE. ANF BABCOCK PLEASE GET READ OF OUR QUINESSSSSSYYYYY HOLLAND YOU JUST HIT THE JUCK f****** POTT!
- redwashington2000 March 19th, 2012
Posted 11 April 2012 - 05:41 AM
Can anyone say Nash to EDM for a first rnd pick?
That would be rather interesting. What would you do if you were the CBJ with the top 2 picks? Do you go for Nail and Galchenuyk since they have chemistry and like playing together? Or do you scoop up Grigorenko? Go after a defenseman? Or is there a quality goalie to be had for trade with one of those picks?
Posted 11 April 2012 - 06:07 AM
Same here, primarily because when I sit at my computer in my foil hat I just plain don't trust it "What's that? SEE the lottery draw? Oh... ermm.... no we've already done it! Ahhh too bad, you should have been here 5 minutes ago. Oh by the way, you get nothing, they get it all again" hehe. Wouldn't be surprised if the league tried to 'help' one of their historically bigger franchises, but then again I'm paranoid.
I feel bad for the Blue Jackets. Sheesh the Oilers. If they can't do something with 3 number picks then they should definitely give it up.
I would actually like to see the picking of the balls rather then the way they do it.
If they really are trying to 'do a Pittsburgh', then I hope they fail and just continue to suck.
EDIT: clarification
Edited by Wing Across The Pond, 11 April 2012 - 06:09 AM.
Posted 11 April 2012 - 08:00 AM
That reminds me; the new Three Stooges movie opens this Friday.
- haroldsnepsts, IILeiBlazeII and sleepwalker like this
"Mess up tomorrow, don't mess up now".
- Harry James Benson, CBE.
Posted 11 April 2012 - 08:45 AM
Can anyone say Nash to EDM for a first rnd pick?
Actually I think something along those lines would be in the best interest of both teams.
Posted 11 April 2012 - 09:08 AM
- IILeiBlazeII and Danielsm like this
Posted 11 April 2012 - 09:42 AM
While I agree that this MIGHT work out for both teams, there is one little hitch: would Rick Nash really waive his no-trade clause to jump from one bottom-feeder to another bottom-feeder with a bit better prospects? Also, if the argument against the Oilers taking Yakupov is that he is a right-winger and they could use more help on defense, goal, or center, why add another right-winger in Rick Nash who is older, has a big cap-hit, and questions about his production ceiling? They would be better off taking Yakupov at an entry-level contract.
Can anyone say Nash to EDM for a first rnd pick?
But either way, the chances of Nash waiving his NMC to move out of the frying pan and into a bigger frying pan, is miniscule at best.
Posted 11 April 2012 - 09:45 AM
"For my game, I don't need to score the goal," Konstantinov once explained. "I need someone to start thinking about me and forgetting about scoring goals."
Posted 11 April 2012 - 09:55 AM
Edited by crotty99, 11 April 2012 - 09:56 AM.
Thanks TeeMan!
Posted 11 April 2012 - 10:04 AM
Hahahahahahahaha! I almost peed myself, thank you...
This is almost heartbreaking to watch
Posted 11 April 2012 - 10:08 AM
Or how to KEEP them after their mandatory stay in purgatory.
Edmonton seems to have found the secret for "winning" this. Now all that have to do is figure how to keep their picks healthy.
Posted 11 April 2012 - 10:14 AM
This is almost heartbreaking to watch
Edited by jollymania, 11 April 2012 - 10:15 AM.
- uk_redwing
HockeyArchive Twitter
Similar Topics
|Started By
|Last Post Info
Wings lose scout to leafs
|General Discussion
Tarasenko re-signs with the Blues (60 mill/8 years)
|General Discussion
Here we go AGAIN - Coyotes, part DUH!
|General Discussion
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users


text:
Back in the dark ages before Twitter and Facebook and Pinterest, nonprofits raised money the old-school way.
Lowcountry Giving Day
To donate or to watch local giving totals on Tuesday, go to http://lowcountrygivingday.org. Use the hashtag #LiftTheLowcountry on Twitter.
Follow individual nonprofit's gift totals on their websites.
To watch national donation numbers, go to www.givelocalamerica.org. On Twitter, use #GiveLocalAmerica.
They sent out mailers. They called people's landlines. They worked their local network trees, especially those with the wealthiest fruit to pick.
Good luck with that approach today, when a call to fundraising arms on social media, such as #GivingTuesday, can generate millions in a few hours.
"It's not just write a check, stick on a stamp and you send me a thank-you note anymore," says Jon Yarian, spokesman for Coastal Community Foundation.
A new online event to be held Tuesday has Charleston in the lead of yet another national barometer, this one of major giving.
The local Coastal Community Foundation is facilitating Lowcountry Giving Day, part of a national effort among more than 100 community foundations nationwide called Give Local America. It's the first time one in South Carolina has taken part.
The 24-hour online fundraising mashup aims to build social media buzz ahead of time and then let localities and individual nonprofits compete to see who can raise the most in donations that day. The foundations use large incentive pools to enhance people's donations.
In its inaugural year, Lowcountry Giving Day has raised $1.5 million from major donors for its incentive pool, more than any other nationwide, and more than twice as much as the next closest competitor.
Not bad for newbies. Except not really. Although new to this event, Coastal Community Foundation, which manages $178 million in combined assets to serve charitable groups, has been helping local nonprofits for 40 years now.
And Tuesday's main incentive donors? Two of the most recognized philanthropic names in town: the Zucker and Pearlstine families.
Other donors include businesswomen Nancye Starnes and Lenna Macdonald, who created a $110,000 incentive for gifts to members of the Charleston Regional Alliance for the Arts.
In all, 94 local nonprofits - from the Center for Women to Charleston Stage to Dee Norton Lowcountry Children's Center - are hoping donors will support them Tuesday.
Basically, here's how the day will work:
Major donors already have pledged the $1.6 million pool of incentive money. Some have specified nonprofits or sectors they want to support such as arts or education.
Then on Tuesday, starting at 12:01 a.m., people can go to lowcountrygivingday.org and give however much they want ($25 at least) to whichever nonprofit they want from a list of those taking part.
It works like matching funds, although not necessarily as a $1-for-$1 match. How much each nonprofit receives from the incentive pool depends on how much money people donate to that nonprofit. The "match" given a nonprofit might be more or less: 50 cents to the dollar or more like $1.20 to the dollar.
Either way, both contributors see their money become more money. And the nonprofits people most want to support get the most new money.
Throughout the day, the public can watch an online thermometer-style gauge that shows how much has been raised nationally, locally and by each individual nonprofit.
"This is a new world. You must go online," says George Stevens, president and CEO of the Coastal Community Foundation. "It's a really different feel for how giving works."
Anita Zucker, a local businesswoman and philanthropist, has pledged $1 million in incentive funds to encourage donations to education-based nonprofits. She's seen that shift over the years, too.
"I have seen a sea change in how we have to operate," Zucker says. "We have to come into a modern world."
After the 24 hours, donations go to the nonprofits specified to use how they need.
Lowcountry Giving Day isn't just about raising money, although that is the driver of the day. It's about impacting people's lives and improving their futures, something that benefits the entire community, donors say. "Our nonprofits always have such tremendous needs," Zucker says. "My hope is that this will inspire others to give."
Reach Jennifer Hawes at 937-5563, follow her on Twitter at @JenBerryHawes or subscribe to her at facebook.com/jennifer.b.hawes.
Notice about comments:
The Post and Courier is pleased to offer readers the enhanced ability to comment on stories. Some of the comments may be reprinted elsewhere in the site or in the newspaper. We ask that you refrain from profanity, hate speech, personal comments and remarks that are off point.
We do not edit user submitted statements and we cannot promise that readers will not occasionally find offensive or inaccurate comments posted in the comments area. If you find a comment that is objectionable, please click the X that appears in the upper right corner when you hover over a comment. This will send the comment to Facebook for review. Please be reminded, however, that in accordance with our Terms of Use and federal law, we are under no obligation to remove any third party comments posted on our website. Read our full terms and conditions.


text:
The Good
Three issues, three different narrative styles. Done poorly, this would highlight my "bad" section, but subpar execution just isn't Jeff Lemire's style. What is his style: distinctive stories, delivered in pleasantly unexpected ways.
The most compelling moments in a love story are often defined by its conflicts. "Nika and William meet and can communicate right away and live happily ever after" just doesn't have the same punch as "Nika and William met briefly, but were cast apart by space-time, and now they have to reconnect and also possibly save the universe." Lemire uses this device to his advantage, and throws us curveballs at just the right moments to keep the pacing up and make the story of their relationship interesting.
Also interesting: things that are left mysterious. Scenes that are fragmented, or in need of translation from alien dialect, leave us to fill in pieces of the story with our imaginations, and (again with the caveat of "when done well..."), make it that much easier to invest in the characters and their stories. Because we're trying to solve their mysteries, and keep them safe from impending doom (by working out possible ways that everything could still turn out ok), we enjoy guessing why Lemire called out the syringe in Nika's cell and how she might use it in a few panels, or trying to translate alien speech to predict whether the Earthlab outpost will survive.
Locking it all together is a very solid, very self-aware big-picture story. We know that TRILLIUM wraps in eight issues, and we can also see that the series is paced to reveal just enough in each issue to keep us satisfied until the next. We keep gaining context about the world(s) we're peeking into -- including the imminent end of the Earthlab humans due to military/political stubbornness in the face of scientific evidence that goes "off-plan."
The Bad
Lemire makes a stylistic choice with William's pages that is completely in-tune with the disconnection Nika and William are feeling, but it's one that sacrifices practicality in favor of artistic merit. All of William's pages are upside-down; for print readers, this is mildly inconvenient, but for digital readers, who are advised that "This page is intentionally inverted to match how it appears in the print edition," there's no choice but to try reading upside-down or awkwardly position around one's device to try circumventing auto-rotation.
The Verdict
TRILLIUM continues to shine as one of Vertigo's gems; it's unique, it's beautiful, and it's compelling to no end. It's incredibly easy to become invested, not only in the fates of Nika and William, but of the universe at large. This kind of immersion is Lemire's wheelhouse; in just a few issues, he's built a world (or two, rather) that begs to be cared about, and seeded a love story that transcends time and space.


text:
Recent SHOOT News & Features
Filmmaker Rushmore DeNooyer Chronicles Impact of "The Bomb"
- Monday, Jul. 27, 2015
The creation of the atomic bomb in a...
Spot Welders Adds Editor Jason Kileen
- Monday, Jul. 27, 2015
Editor Jason Kileen has joined the New...
"Ant Man" Crawls Past "Pixels" To Top Box Office For 2nd Straight Weekend
- Sunday, Jul. 26, 2015
"Ant-Man" crept past new opener "Pixels...
No New Sponsors To Be Found For World Cup In Light Of FIFA Scandal
- Saturday, Jul. 25, 2015
The FIFA corruption crisis is hurting...
AT&T Buys DirecTV After Receiving FCC Approval
- Friday, Jul. 24, 2015
Even as TV watchers increasingly go...
Newsbriefs and Departments
NY wins $600 million hub for photonics research, development
- Tuesday, Jul. 28, 2015
Rochester, whose fortunes have risen and fallen with the demand for...
Nike offers partial refund to end FuelBand lawsuit
- Tuesday, Jul. 28, 2015
Nike will give partial refunds or gift cards to people who bought FuelBand...
Madonna: It's just the beginning for streaming service Tidal
- Monday, Jul. 27, 2015
Madonna, who co-owns Tidal with Jay Z, Beyonce and others, says it's just...
Filmotechnic USA expands operations
- Monday, Jul. 27, 2015
Filmotechnic USA, known for its fleet of high performance camera car...
Newport Jazz Festival to mark Miles Davis' 60th anniversary
- Sunday, Jul. 26, 2015
Miles Davis wasn't even listed in the program book when he appeared for...
SHOOT ScreenWork
Hamish Rothwell of Goodoil Films...
People play in the water on the beach...
The CO.LAB duo, a recent addition to...
Agency 180LA has rolled out the film...
This spot takes us to a future world in...
Recent Columns
No Cut Here: Second Circuit Holds Motion Picture Director Does Not Own Separate Copyright for His Contribution To Film
- Monday, Jul. 13, 2015
Following in the footsteps of the Ninth Circuit , the Court of Appeals for...
Sound Like A Blockbuster?
- Monday, Jul. 13, 2015
We all know the importance of music—the soundtrack—in moving a moving...
Is Your Internship Program Compliant With The Latest Court Ruling?
- Wednesday, Jul. 8, 2015
Your summer interns have only just arrived - and, as you may have heard ,...
Full Circle
- Friday, May. 15, 2015
It wasn't only their work but also feedback from a directing team selected...
Cinco de Mayo
- Friday, May. 15, 2015
The Association of Independent Commercial Producers (AICP) and PLASA's...
Photo Op
Fueld Films Unveils Directorial Roster...
- Friday, Jun. 12, 2015
Taylor Swift's 9 Nominations Top...
- Tuesday, Jul. 21, 2015
TBWA\Chiat\Day Scores Pair of Primetime...
- Thursday, Jul. 16, 2015
"The Americans," "Empire...
- Thursday, Jun. 4, 2015
Director Dito Montiel Reflects On Robin...
- Friday, Jul. 10, 2015
SHOOT's Directors/Producers Forum...
- Friday, May. 29, 2015
Woody Allen Returns To Cannes With...
- Friday, May. 15, 2015
"Game of Thrones" Season...
- Tuesday, Jun. 16, 2015
Roland Joffe Directs "Texas Rising...
- Saturday, May. 23, 2015
SHOOT Publicity Wire News
Motion Theory's Mathew Cullen Directs Spot For Maytag Brand via DigitasLBi
Motion Theory director Mathew Cullen was recently enlisted by global...
- Monday, Jul. 27, 2015
Cogswell Brings Original VP Mobile Game "We Are Cubed" To SIGGRAPH 2015's "Appy Hour"
Cogswell College, a historic, 600-student educational institution offering...
- Monday, Jul. 27, 2015
Sound Artists From Sony Pictures Post Production Garner Emmy Nominations
Sound artists from Sony Pictures Post Production Services are among the...
- Monday, Jul. 27, 2015
Cannes Lions, Shorty, Tellys and More For Traveling Picture Show Company Directors
The Traveling Picture Show Company announces multiple wins for work by...
- Monday, Jul. 27, 2015
Rampant Design Expands Collection of Style Effects for Editors, VFX and Motion Graphics Artists
Rampant Design ( www.rampantdesigntools.com ) today announced it is...
- Friday, Jul. 24, 2015
BaseCamp Entertainment Launches IPS
BaseCamp Entertainment , a New York-based directing collective, has...
- Thursday, Jul. 23, 2015
Edit 1 Produces/Posts Visually Stunning New Music Video For Electropop Songstress BECA
Looking to showcase their full palette of talent and creative services,...
- Wednesday, Jul. 22, 2015
Pull Composes a Percussive Score for Emmy and CLIO-Winning ESPN Campaign
Original music company Pull provided an earth-shaking score for " I...
- Wednesday, Jul. 22, 2015
Calabash Shows Off Their 'Sand-Mation' Talent In New Kinetic Sand Ad
Few toys are as unusual and imaginative as Spin Master's Kinetic Sand,...
- Wednesday, Jul. 22, 2015
DGA Announces 2016 Awards Schedule
The Directors Guild of America (DGA) today announced the schedule of key...
- Wednesday, Jul. 22, 2015
SPW Videos
Motion Theory director Mathew Cullen was recently enlisted...
This video is one of a series of videos in collaboration between m ss...
Behind the scenes (BTS) for the making of Beca's "...
Looking to showcase their full palette of talent and creative services...
This summer MZed is proud to announce Alex Buono's Visual...
HOBO is launching a TV, radio and Internet public service campaign...
For this quirky coming-of-age spot directed by Aaron Stoller out of...


text:
Linux Desktop Experience with ARM and MIPS
The Linux experience for many of our readers most likely starts with an x86 hardware platform. However, desktop solutions exist for other platforms, like ARM and MIPS. When Linus Torvalds' practice with Minix…
A Voyage to the Kernel, Day 11
[Segment 3.1] We're entering a new phase in our journey—kernel programming. In the first part, we'll cover a broad introduction to the Linux platform for newbies, along with some history.


text:
More information
The National Center for Missing and Exploited Children offers educational materials for children, teens, parents and law enforcement at their Netsmartz website: www.netsmartz.org
The district joined a growing number of schools providing students with an iPad or personal computer. Other school systems that have either done this, or are planning to do it, include East Noble, Central Noble, East Allen and Southwest Allen, according to Huntington County Community Schools' website.
The "1:1" digital curriculum program, which is gaining popularity in numerous districts in northeast Indiana, is said to increase students' motivation, engagement and comprehension in learning. But officials at Huntington recognized the potential for problems when students take home the devices and use them off school property.
During the day, the school system has the ability to ban student access to sites like Facebook, Yelp and Match.com. And officials put together an informational program for parents that outlines potential problems when children are unsupervised and have access to computer equipment with Internet access away from school.
It's not just the schools, though, that are providing children with ready access to the Internet. Many young children have access to multiple digital devices – smartphones, hand-held video game players, Xbox consoles and tablet computers.
Often gifts, the devices may be handed to children by adults who do not know how they work. And with all these portals linking children and young adults to the Web, problems can arise.
Experts say the number of cases of sexual exploitation of children who are online remains relatively small – about 1 in 25.
But two recent local criminal cases have generated conversations and concern, and they have put renewed emphasis on the need for parents or guardians to pay attention to how students use the technology – regardless of whether it came from the home or school.
Using those identities, Hasty, a 34-year-old Huntington man who until the criminal investigation was a Campus Life director for Fort Wayne Area Youth for Christ, solicited naked pictures from 12- to 14-year old boys in his youth group.
Hasty flirted and cajoled, gave them phone numbers where they could text pictures of themselves and in some cases asked them to perform sex acts in front of a Web camera, according to court documents.
When FBI agents knocked on his door in late September, Hasty admitted to using the fake Facebook accounts, saying he communicated with more than 10 boys and had targeted children who were members of his youth groups, according to court documents.
He worked for Fort Wayne Area Youth for Christ at Huntington's Crestview and Riverview middle schools.
Hasty remains in the Allen County Jail, held on federal charges related to the possession of child pornography. If convicted of the charges, he faces no less than five years in prison. The matter remains under investigation, and since news of Hasty's arrest broke, other families have surfaced and reported potential contacts with Hasty to the local office of the FBI.
Meanwhile, about 50 miles north in DeKalb County, 29-year-old Jason Lee Schwartz faces a host of state charges, both felonies and misdemeanors, accusing him of multiple sexual contacts with young girls.
Among the 22 charges, Schwartz is charged with child molesting, sexual misconduct with a minor, possession of child pornography and tattooing a minor.
According to court documents, Schwartz texted girls as young as 13, gave some teens tattoos in exchange for sex and threatened to publish naked photographs of the girls on Facebook if they did not comply with his demands for sex.
It is much more common for adults who prey on children using online or digital technology to be up front about their age, said Laurie Nathan, senior manager of national outreach and partnerships for the National Center for Missing and Exploited Children.
That is because they do not have to be dishonest. Children with physical or sexual abuse in their backgrounds or who are suffering from neglect crave affection from adults, Nathan said.
Those children are most at risk to be exploited, she said.
And while it is easy to blame technology and its easy access for the problems of sexual exploitation, the solution lies with parental involvement beyond merely supervising use of the devices.
The long-held advice of making sure digital devices are used in common areas and not in seclusion such as a child's bedroom still holds true. But Nathan said with the ready access to wireless networks and the ease and portability of the devices, it can be challenging for parents to keep tabs on all the devices and their use.
The best prevention is to have an ongoing dialogue with your child about the responsible and safe use of digital technology. It is a conversation that must occur more than once, Nathan said.
The National Center for Missing and Exploited Children encourages these discussions begin with children as young as 5, she said.
Parents may be reluctant to interact with their children about these issues because they believe the children are more technologically savvy, she said.
But before parents or guardians hand over the latest iPhone or tablet computer as a holiday or birthday gift, they should take the time to familiarize themselves not only with the device, but with the security and safety options available, she said.
Aggressive sexual solicitation includes suggestions to meet up, asking for contact information or telephoning the child directly, she said.
"I know it kind of shakes a community when these things happen, but we don't want to assume that every child is going to get into trouble either," she said.
Superintendent Tracey Shafer said the district locks students out of social media sites while on school property and had done so before this incident.
"All of our students are certainly going to have access to digital media," he said. "Even before that, most of our students had digital devices at home and were using digital devices at school."
He said the district provided educational programs for parents to help them better police their children's use of the devices.
Regardless of how the students acquire digital technology, parents and guardians must establish clear boundaries well before the need arises, Nathan said.
"You really need to do that," Nathan said.


text:
[Up to 48% Off] Ramadhan Buffet Dinner at G Cafe, Gaya Centre Hotel for 1 (RM38) / 2 (RM58) People. Halal. Limited Groupons
- Ramadhan buffet dinner for 1 or 2 people.
- Feast on assorted local cuisines including seafood otak-otak, rojak pasembur, murtabak Jawa, satay, ikan bakar, and more.
- Desserts: Local fruits, assorted ice-cream, chocolate mousse, egg tarts, kuih-muih, and more.
- Drinks: Air Bandung, sirap, and teh tarik.
- Children aged 5 and below eat for free.
- Redemption period: Jul 10, 2013 – Aug 7, 2013.
- Bookings must be made between Jun 10, 2013 – Aug 6, 2013.
- Min. 1 day prior booking required. Bookings subject to availability.
- Valid 6pm – 10pm daily (including public holidays).
- May buy and use many.
- Max. 120 Groupon customers per night.
- Dine-in only.
- Sharing not allowed.
- Halal restaurant.
- Children aged 5 and below eat for free.
- Groupon for 2 people must be redeemed at the same time.
- Service charges and Government tax included.
- Printed Groupon voucher required upon redemption.
- Valid at G Café: 088-245 567 (Call 10am – 5pm daily).
- See the rules that apply to all deals.
Etiquette dictates that when on a dinner date, one should always observe punctuality, modesty and the decency to not to arrive as a werewolf. Today's Groupon prevents wolfish behaviour with a Ramadhan buffet dinner at G Café, Gaya Centre Hotel in Kota Kinabalu. Choose from:
- Buffet for 1 person for RM38 instead of RM55.70
- Buffet for 2 people for RM58 instead of RM111.40
Ramadhan Buffet Dinner
Nasi dagang senja Ramadhan
Nasi minyak mandahan
Mee goreng ufuk Borneo
Kari daging mamak maidin
Ikan masak hitam manis
Sotong sumbat berahi
Udang goreng serawah berempah
Tempeh tumis bercili dengan asam jawa
Rojak pasembur
Bubur Asyurah ala Sandakan
Sayap ayam panggang madu
Kuih ayu semerak pandan
Otak-otak makanan laut
Sayur lemak lodeh dengan lontong
Roti Mariam Abu Dhabi
Murtabak Jawa Borobudur
Satay ayam dan daging
Ikan bakar temenggong
Popiah sardin
Laksa Sabah Dibawah Bayu
Ulam-ulam kampung dan aneka sambal
Sup urat lembu
Sup kambing
Local fruits
Assorted ice-cream
Chocolate fountain with fruit and marshmallow
Bubur cha-cha
Assorted traditional Malay kuih-muih
Fruit pudding
Corn custard
Chocolate mousse
Kek gula hangus
Egg tart
Cream caramel
Air bandung
Sirap selasih
Teh tarik
Explore dining options within G Café's cosy air-conditioned dining space or on its scenic alfresco terrace overlooking the open azure ocean. Day-long adherence to religious obligations come to an end as eager taste buds savour well-deserved local delicacies such as satay, otak-otak, ikan bakar, sup kambing, and various other mouth-watering dishes. Gaya Centre Hotel is conveniently located off the Tun Fuad Stephen road, across the road from Suria Sabah.
Phone: 088-245 567 (Call 10am – 5pm daily)


text:
|Periodicals A-Z | PUBLISHER's Journal Indexes
|ATLA Religion Database with ATLASerials - EBSCO
|Old Testament Abstracts - ATLA - CBA
|Humanities Abstracts - EBSCO
|New Testament Abstracts - EBSCO
|Web of Science Citation Index - ISI
|Cuneiform Digital Library Initiative (CDLI)
|Internet Resources
|Number in brackets is the linkrank. The lower the number the more popular.
|AATA Online - Abstracts of International Conservation literature. [212]
A comprehensive database of over 100,000 abstracts of literature related to the preservation and conservation of material cultural heritage. This database is of special interest to those working in archaeology.
|Art History Network [1249]
|Early Journal Content on JSTOR [235]
Free access to JSTOR content published before 1923 (USA) and 1870 (outside USA)
|Electronic Text Corpus of Sumerian Literature [1482]
|Geoscience Research Institute Newsletter [665]
|Horn Museum [1459]
|Oriental Institute - University of Chicago [1488]
|Perseus Project [380]
Tufts' flagship collection, under development since 1987, covers the history, literature and culture of the Greco-Roman world.
A selective bibliography of articles in the various fields of Jewish studies and in the study of Eretz Israel.
Updated: July 29, 2015