text:
PostScript, The Forgotten Art of Programming
Time to do something more interesting. To draw a line, enter:
newpath 100 400 moveto 300 200 lineto 500 300 lineto stroke
This instruction starts a new path by moving to point (100, 400), drawing a line to point (300, 200), then to (500, 300) and, finally, painting the current path. Without the stroke you wouldn't see a thing. Instead of absolute positions you can also use relative movements with rmoveto and rlineto. The thickness of the lines can be controlled by the setlinewidth option, e.g., to draw a hair line:
0.01 setlinewidthFilling shapes is also easy. Replace stroke by closepath fill; the command closepath connects the last point with the first point to form the shape and fill fills the shape with the current color or grayscale. In this case we get a black triangle. If you do 0.9 setgray, the fill color will be a light gray (0 is black and 1 is white). You can also select colors with sethsbcolor or setrgbcolor, but these options are a bit more complicated. (For further information, see the Red Book in the References.)
Placing text takes some initial preparation: First select the proper font:
/Times-Roman findfont 10 scalefont setfont
selects a 10-point Times-Roman font. Other well-known fonts are Helvetica and Courier. Placing text is easy; you move to the position where you want the text, add parentheses to enclose the text and add the command show. In the case where the text contains parentheses or a backslash you must "escape" them by inserting a backslash before the character to be escaped. Sounds familiar, right? So the line:
400 400 moveto (Hello World) showprints a greeting you have seen many times before.
There is one final command that is crucial if you want to see anything rolling out of the printer: showpage. This command transfers the picture, made by the PostScript interpreter of your printer, to paper and clears the memory afterwards so that you can start a new page. The command run can be used to load your file:(file.ps) run executes the file named file.ps.
Compliant PostScript is nothing more than PostScript with some special comments and layout instructions for your PostScript program, so that other programs can read your PostScript program and perform certain operations on it. There are numerous examples of available operations: reversing the pages, scaling the pages, rotating the pages, placing two or four pages on one page, etc. Even the program Ghostview uses compliant PostScript, the title and page numbers that you see are retrieved from the PostScript comments.
Since this is all done through comments, it does not matter to your printer if the PostScript is compliantor not—the printer skips all comments. However, in a Unix environment it is common to use the output of one program as the input for another. Thus, it is quite natural not to consider a PostScript file as an end station. In a Unix environment compliant PostScript files are a must; otherwise, the print filters will not be able to process the files.
In a Microsoft environment with Microsoft's well-known word processor, PostScript is an end station. The generated output suggests that it is level-2 compliant PostScript, but, alas, it is not. There are so few rules to make your document level-1 compliant (see Red Book) or even level- 2 compliant (see DSC in the References), that you might wonder how it ever wouldn't be.
I will stick to level-1 compliant (it is a bit easier as level-2 has more overhead). In the Red Book, level-1 compliant PostScript is described in just eight pages; so if you want to know all the ins and outs, it is the right source.
There are three types of comments:
Header comments go before any PostScript code.
Body comments primarily serve to mark the boundaries of pages.
Trailer comments follow all PostScript code and are normally used to describe certain features that were not yet known from the header comments, so they were deferred (e.g., number of pages, fonts to be used and bounding box).
Normally, a comment in PostScript starts with a % (percent symbol), but these structuring comments start with %% (or %! if it is the very first line). A %% comment is directly followed by a keyword denoting its type of structuring comment, and if arguments are needed, they follow a :(colon) and are separated by spaces. As an example, let's look at the following template (the number in front of each line is just for reference):
1 %!PS-Adobe-1.0 2 %%DocumentFonts: 3 %%Title: 4 %%Creator: 5 %%CreationDate: 6 %%For: 7 %%Pages: 8 %%BoundingBox: 9 %%EndCommentsThe first line suggests that these files are going to be level-1 compliant. One common misunderstanding is that people think the 1 in 1.0 denotes the compliance level, but that is not the case. Only level-1 and level-2 compliancy exist, so even if you see %!PS-Adobe-3.2 , it is not level- 3 compliant (it should be level-2 compliant).
The second line contains the fonts to be used in this file. Some programs find it handy to know in the beginning which fonts they should load. However, when you create a program that generates PostScript, you often do not know this at this time. This header comment can be deferred to the trailer comments. In that case you will have to replace the font1 font2... part of the line in the header with (atend).
The third line is easy; text indicates the title of the document. Often this is the file name, but it does not have to be. Spaces in text are no problem. The fourth line is equally easy; here text should be replaced by the author or the application that created this file.
In the fifth line text should be a date and time humans can interpret. Line 6 is optional, and text should be replaced by the intended recipient. If absent, the intended recipient is Creator.
In line 7 number should reflect the number of pages in the document. Since this number is often not known beforehand, it is frequently deferred to the trailer comments. Again, substitute (atend) in this case.
Line 8 contains four arguments: the x and y coordinates for the lower left corner and the upper right corner. In the case of multiple pages you should use the bounding box, so that all pages lie in the bounding box. To fill in the right values, you will find Ghostview very handy. The bounding box can also be deferred to the end; again you would specify (atend).
Finally, line 9 ends the header section. Besides line 1 and 9 the order of the other lines can be chosen as you see fit.
After the header you normally see some PostScript definitions of variables and subroutines. These variables are intended to remain constant throughout the rest of the PostScript program.
Next, it is time for the body comments. The first body comment is %%EndProlog, which ends the "invariant" section of the program. Most print filters leave everything up to this line intact.
Each page is preceded by (again line numbers are only for reference purposes):
1 %%Page: 2 %%PageFonts: elm
The first line contains label and ordinal. label should be replaced by a string, containing no white space, that indicates which page it is. Sounds a bit weird, but this means that Roman numerals are okay, and if you have two pages on one, then 1,2 or 3,4 is a valid page number as well. In our case, it is just a plain number. The ordinal part indicates the value of the page number. Having two types of page numbers is just for your convenience.
The second line is optional and describes which fonts are to be used in the output. If absent, the fonts specified for DocumentFonts in the header are used.
Although it is not necessary, if you want to create just a single page, the next PostScript command is save, which makes a copy of the environment you have built so far. At the end of the page you will find the line:
restore showpage
This command retrieves the original situation and prints the page. It means that anything you do between save and restore is fair game, i.e., you can't screw up other pages if a filter reorders the pages.
After the final page you have %%Trailer. Most filters leave this line and everything that follows it intact. In some PostScript programs some cleaning up occurs here, but in most PostScript programs the trailer comments follow directly (again, line numbers are for reference purposes):
1 %%DocumentFonts: 2 %%Pages: 3 %%BoundingBox:
Of these three lines, only those that were deferred in the header comments should be included here in the trailer.
If you want to make your PostScript level-2 compliant, you need to read the DSC (see references).
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
Designing Electronics with Linux | May 22, 2013 |
Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
Home, My Backup Data Center | May 13, 2013 |
- Nice article, thanks for the
39 min 4 sec ago - I once had a better way I
6 hours 25 min ago - Not only you I too assumed
6 hours 42 min ago - another very interesting
8 hours 35 min ago - Reply to comment | Linux Journal
10 hours 28 min ago - Reply to comment | Linux Journal
17 hours 22 min ago - Reply to comment | Linux Journal
17 hours 39 min ago - Favorite (and easily brute-forced) pw's
19 hours 30 min ago - Have you tried Boxen? It's a
1 day 1 hour ago - seo services in india
1 day 5 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Featured Jobs
Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
Senior Perl Developer | Austin, Texas | Host Gator |
Technical Support Rep | Houston and Austin, Texas | Host Gator |
UX Designer | Austin, Texas | Host Gator |
Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the "typical" Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?


text:
We apologize for the inconvenience but the job you are looking for has been filled or it has been removed by the recruiter. For your reference, the original listing is shown at the bottom of this page.
Listed below are the top 10 out of 3,136 listings that are in the same industry and location as the job you were looking for. To see more than 10 listings, click here to search similar jobs in Seattle, WA
To view more listings click here to search Technology Jobs in Seattle, WA
For your reference, we have included the original job posting below.
The Information Technology Industry is heating up again. There is currently a high volume of LAN/WAN positions and not enough qualified candidates to meed the demand. In fact, LAN/WAN positions (network systems analysts) are rated as the fastest growing job category for the next 10 years by the Bureau of Labor Statistics (BLS).
Cisco certified professionals are respected and in high demand throughout the world. Cisco certified professionals are not just engineers. In fact, many hold positions in LAN/WAN administration, engineering, analysis, consulting and project management. Compensation for seasoned Cisco professionals ranges from $72,000 to over $120,000 per year.
We are currently interviewing candidates for the LAN/WAN Engineer Internships. If you are selected, you receive over $40,000 in enterprise Cisco training and a 3 month LAN/WAN Engineer PAID Internship to fast track you to professional-level positions making a minimum of $72,000 to over $120,000 per year. Your actual compensation after internship completion will vary based on your previous credentials, location, and performance during the internship.
Please note that this is a serious and challenging engineer-level internship. For this reason, only extremely sharp, highly ambitious, tech savvy individuals who are willing and prepared to make short-term sacrifices for long-term career benefits should apply.
All candidates will receive Cisco enterprise LAN/WAN training valued at over $40,000. The best part is that 100% of the training is paid through a percentage of your future income. We want to ensure that only serious and qualified candidates apply for this internship.
To apply, please click the "Apply to Job" link on this page.

subset: commoncrawl


text:
See also: Joe Arpaio Struggles in Racial-Profiling Trial to Answer Examples of Seemingly Bigoted LeadershipSee also: Joe Arpaio Looks Like Tired, Old Racist on Stand During Racial-Profiling TrialSee also: Joe Arpaio's Racial Profiling Trial Begins, and, Yes, He's Guilty as SinSee also: Joe Arpaio's ... More >>
See also: Joe Arpaio Struggles in Racial-Profiling Trial to Answer Examples of Seemingly Bigoted Leadership See also: Joe Arpaio Looks Like Tired, Old Racist on Stand During Racial-Profiling Trial See also: Joe Arpaio's Racial Profiling Trial Begins, and, Yes, He's Guilty as Sin See also: Joe Arpaio ... More >>
Julio and Julian Mora, who today won big against Sheriff Joe As Sheriff Joe Arpaio plots to humiliate Arizona by deploying a chain gang of illegal immigrants to clean up around Chase Field, where the Major League Baseball All-Star Game is scheduled to take place July 12, there's ample evidence Arpai ... More >>
from Channel 12Sheriff Joe toady and hatchet man Jack MacIntyre: The fall guy for the MCSO's Nixonesque shreddingYou'll recall that in November, I reported that MCSO deputies had admitted under oath to destroying documents requested by the plaintiffs in the big Melendres vs. Arpaio racial profiling ... More >>
Nixon redux: Document shredding, deleted e-mails. What's next, secret tapes?In a stunning revelation recently made public as part of the ongoing federal civil rights lawsuit against the Maricopa County Sheriff's Department and Sheriff Joe Arpaio, an MCSO sergeant has admitted that the departmen ... More >>
In the 24-hour news cycle it can be difficult to keep up. We have the solution. Check back on Valley Fever every evening for highlights from each of New Times' blogs. Today's entries: Feathered Bastard: Joe Arpaio & Lt. Joe Sousa: We Don't Need No Stinking Badges! Up on the Sun: Concert Rev ... More >>
from Channel 5's raw footageLt. Joe Sousa, helping MCSO maintain its knuckledragging imageIn a mentally-challenged media stunt, made more so by the ravings of Rhode Island redneck Lt. Joe Sousa, Sheriff Joe's self-described unit commander for human smuggling, MCSO's 287(g) task force members placed ... More >>
Julio Mora with his father Julian at the Arizona ACLU offices today, announcing their lawsuit against ArpaioAs I anticipated in yesterday's blog post, the Arizona ACLU today had a press conference at their offices with father-son Julian and Julio Mora present, announcing a lawsuit on their ... More >>
Find everything you're looking for in your city
Find the best happy hour deals in your city
Get today's exclusive deals at savings of anywhere from 50-90%
Check out the hottest list of places and things to do around your city


text:
CMI Staffing has the talent and experience to deliver the professionals who will drive your organization to flourish. We develop a deep understanding of your technical, cultural, and organizational environment, and then use that understanding to help enrich your company with the top talent that it needs to succeed. With CMI Staffing, discover the perfect fit.
Do you want to get your career on the right track in the right role within the right organization? Let CMI Staffing™ help! Having strong relationships with our clients, gives CMI Staffing™ the edge when it comes to finding you full time, contract or consulting positions. With CMI Staffing™, Discover the Perfect Fit.


text:
My Account (sign in)
Ester A. Lim Drive, Tawala, Panglao, Panglao Island, Bohol, Philippines (Show on map)
Book now!
based on 1141 reviews
Fast check in and check out although this is the first...
Distance to airport:
Tagbilaran Airport (13.6 Km)
Customer comments:
"Clean new rooms", "Friendly staff", "Great pool", "Quiet location"
Top attractions in the area:
Alona Beach (0.5 Km)
The Philippine Tarsier Foundation (2.7 Km)
Dumaluan Beach (3.7 Km)
Panglao Island (6.0 Km)
Check Rates & Availability At This Hotel
lowest rate guarantee
Sorry, there are no available rooms at the Panglao Regents Park for your chosen dates.
Customers who looked at this hotel often booked...
Tip: Don't wait until it's too late! Book now so you don't miss out on today's rate.
When would you like to stay at this hotel?
Photos of this hotel
AvailableNot available
24hr room service
airport transfer
bicycle rental
business center
coffee shop
disabled facilities
executive floor
family room
laundry service/dry cleaning
meeting facilities
pets allowed
poolside bar
room service
safety deposit boxes
shuttle service
smoking area
Wi-Fi in public areas
fitness center
games room
golf course (on site)
golf course (within 3 km)
hot spring bath
indoor pool
kids club
outdoor pool
pool (kids)
private beach
squash courts
tennis courts
water sports (motorized)
water sports (non-motorized)
car park
valet parking
Sale ends soon!
  Hotel Description
  Hotel Policies
Guests over 5 years old are considered as adults.
Extra beds are dependent on the room you choose, please check the individual room policy for more details.
  Useful Information
from 1141 reviews
Alona Vida Beach Resort
Very Good 7.9
from 211 reviews
Hotel Area: Panglao Island
Harmony Hotel
Very Good 7.6
from 496 reviews
Hotel Area: Alona Beach - Panglao Island
Alona Northland Resort
Very Good 7.7
from 48 reviews
Lost Horizon Resort Annex
Very Good 8
from 376 reviews
Your Search Details
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 30+
Earn rewards with us!
more information
Customer Support
All material herein © 2005 – 2013 Agoda Company Pte. Ltd., All Rights Reserved. AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd. Agoda is part of (NASDAQ:PCLN)
Compare my hotels


text:
Today I thought it is time I get better with shader language (HLSH)!
One problem I had with shaders so far, it is that most of sample on the web use Effects. Sadly, not only Effects are not part of the DirectX SDK (or Windows SDK where it has been integrated on Windows 8), but they are just not allowed in Metro app, where you can't use the runtime shader compiler, (allegedly ^^) for security reason.
Thankfully Frank Luna came to the rescue! (Frank Luna is the author of the DirectX I am currently learning from).
He posted a .pdf on how to port an example of his book to Metro here, there is a section on effect towards the bottom.
Just in case Frank Luna move his files around I also download it and attached it below!
Also, in shaders the in / out vertex structure are tagged with semantic names which seem to be part of a well known predetermined lot. A bit of Googling found the list of semantic names, good to know, here is the link on MSDN!
Lastly, in most sample I have seen or read so far (it's not that many, granted! ^^) Shader writer seems to have something against conditional statements.. :~
They use effect to compile multiple shaders at once, depending on some condition (i.e. one effect = multiple shader!!).
But in WinRT there is no effect, dynamic linkage is not supported either.
I decided I will write shaders with conditional statements!! Will see how it goes! ^^
Just a quick note.
My DirectX WinRT C++/CX wrapper used to be at: http://directwinrt.codeplex.com/
It is now at: http://directxwinrt.codeplex.com/
Thanks CodePlex, it was really easy to correct the spelling mistake! :) Furthermore, at least for now, CodePlex is redirecting the old URL to the new!
This time for my DirectX self training I implemented hit testing, frustum culling and octtrees.
On the figure above the red triangle is the triangle that the user hit with the mouse. All the code is in CodePlex, at http://directwinrt.codeplex.com/ and the screenshot is from Sample2_D2D.
As I described in my previous blog entry, calling into C++ is costly, even with WinRT C++/CX. By that I mean crossing the ABI divide between .NET and C++ is (slightly) expensive, not that C++ itself is slow!
It's all the motivation it took for me to port all my math code to C#.
Furthermore, hit testing need be done in code, i.e. there is no help from DirectX here.
The math being rather long to explain I will just explain what is hit testing, frustum culling and outline the basic steps involved in doing it, and let the user refer to the full source code on CodePlex and Google for an explanation of the inner mathematical working when one is needed.
But first, a word of warning,
When one peruse at the code, one might believe there are some elementary sign error in my math, and while it could be there are 2 initial source of confusion to be aware of!
In 3D, DirectX use a left oriented coordinate system! (as described on MSDN), whereas in normal math courses the right coordinate system is used!
Also, another source of confusion, while the Y direction goes up in 3D (as seen above) it goes down in 2D!
The ray struct represent a half line with a point of origin and a direction
It can also be applied a space transformation matrix to change its coordinate system to that of a particular object of interest.
When the user click on the screen, the code can ask the camera to create a shooting ray from the camera location in the direction of the point clicked on screen:
And then it can check if this ray intersect any geometry and how far they are from the ray's source. This is the process of "hit testing", testing that when the user click the screen, it might have "hit" a geometry under the mouse.
Rays have different method to calculate if they intersects with some objects and the distance to a given mesh (list of triangles)
Of course one should make sure that the ray and mesh are in the same coordinate system! Often the mesh is loaded from a model and not edited after that, instead a world matrix transformation is applied to it. In such case one should multiple the Ray by the inverse of the object's world transformation (provided the space is not scaled) before calculating intersection distance.
Doing an IntersectMesh on a big mesh (i.e. a mesh with lots of triangles) is expensive (the method is going to compute an intersection distance on each and all triangle of the mesh). To improve that various technique can be employed:
AABB Tree, Oct Tree, Quad Tree, they are all space binary search tree; 3D space for OctTree, 2D space for QuadTree and any D for AABBtree. The only difference between each of them is the way a tree node divide the space amongst its children.
While we are on topic, I just wanted to mention here, BSP are different, they will make an ordered tree of object (instead of partitioning space).
A QuadTree node will divide the 2D space amongst its children node in 4 equal size rect. And OctTree will divide 3D space in 8 equal size wedges. An AABB tree will divide it in 2, along the longest axis for this node. Below is an example quad tree:
Seeing they all behave more or less the same I have a SpatialIndex<TItem, TBox> base class, subclasses only need to define how they partition the space. I only implemented QuadTree and OctTree so far, but I did took a page from the AABB tree and I don't always divide space in 4 and 8 (respectively) but apply some heuristic. Consequently insert might be more costly… But it should improve memory and keep same or better query time and it will also improve some insert by making more meaningful box (i.e. equally sized, if possible).
Here is the relevant part of the implementation
As you can see both OctTree and QuadTree are collections of item with bounds.
And they have (efficient) method to query object they contain with an intersection box or an intersection predicate. Remark the tree is thread safe for reading and querying.
Remark this seem simple, because it is! Most OctTree/AABB tree on the internet are complicated because they are used to index a mesh's triangle to further optimize hit testing by only testing some triangle of a mesh instead of all triangles. This is something I left for later.
Finally OctTree brought me to the next enhancement. When one render a scene we want to render only what's needed (for performance! DirectX can sort out what's not visible, but it costs some time).
A frustum is a portion of a solid that lies between 2 parallel planes cutting it.
In 3D graphic the frustum refer to the area that is viewed by the camera. And frustum culling mean only drawing what is in that area, culling the rest.
Again one can query the camera for the frustum. One can even do rect selection on the screen by passing a 2D box.
Because frustum define intersection methods it can be used to query an OctTree for visible object and only render what's needed as in:
Now we got an OctTree to to index item by location, some method to test hitting, there is one last optimization that come to mind when doing hit test, how about parallelizing it?
The idea is to hit test each mesh with an hit ray in its own thread and aggregating result in the end. There is one special trick, we need to return some data! There is Parallel.ForEach method for that! Basically it pass a value around at each iteration to aggregate the result and the code should provide a final aggregation method to aggregate all those aggregate result when all the elements have been tested!
Here is a relevant code fragment:
This times I described Hit testing, Frustum culling and OctTrees, which help make those operation faster by indexing the space. I provided some code fragment to show how they are used.
There is also a fully functional hit test sample in the CodePlex repository, http://directwinrt.codeplex.com/: Sample2_HitTesting.
See you next time! :)
For my DirectX WinRT wrapper (now on CodePlex http://directwinrt.codeplex.com/) I took a break of D3D as I had some problem with it (more on that later) and implemented most of D2D, it was easy! ^^
And I also made the initialization even easier and more flexible.
So today I will write a quick how to start (with D2D) and about my latest D3D breakthrough (which is just some C++/CX – C# technicality)
To start DirectX graphic (with my API) one just initialize a DXContext and set a target, like so
There are 3 types of target to choose from (so far):
Target can even be changed while drawing (for example draw first on a Texture2D, which then can be used in the final scene).
DXTargetSwapPanelOrWindow wrap a SwapChainBackgroundPanel in XAML application. Of interest DXUtils.Scenes.ScenePanel initialize DirectX, create a Target and call render on every frame.
Then one can draw, for each frame, with pseudo code like that
Remark at this stage one can download the source (http://directwinrt.codeplex.com/) and have a look at the D2D sample: Sample2_D2D.
This weekend and week I wrapped most of D2D API. To be precise I wrapped the following: - geometries, brushes, bitmap, stroke style, text format, text layout, transforms
(Missing, from the top of my head, would be 2d effects, glyph run and lots of DWrite)
When drawing a scene (whether D2D or D3D), for performance reason, one should initialize all items first and just call the draw primitives while rendering.
For example lets create a few geometry and brushes
In that scene snippet I created an image brush from a resource image, a gradient brush and a simple path geometry.
Now I can just render all my items with just few drawing command, like so (for the geometry):
Now that was easy and I got back to try to solve my dissatisfaction with my current implementation of D3D. Mostly that the C# developer is (currently) limited to the vertex buffer that I hard coded in the API.
And then I had a breakthrough. Let's create a native pointer wrapper and write some code on the C# side that make it strongly typed.
My first attempt looked like that:
That look promising, it even compiled! But then… WTF!!! Platform::IntPtr doesn't cross ABI!! Damn you Microsoft!
Then I had a breakthrough, what about… size_t ?!
It's a perfectly ordinary type, except for the little twist that it projects to int32 when compiling for x86 and int64 when compiling for x64! It worked just fine, sweet!
So this is the change:
On the C# side I was originally hoping to have a generic Pointer<T> class and finally use some unsafe C#.
Well I did use the unsafe C#, but I couldn't compile code like that
The compiler returns the error
Cannot take the address of, get the size of, or declare a pointer to a managed type ('T')
But it did accepts
In the end I create an abstract BasePointer<T> and a .tt template that generate all the template that I need!
Now I just have to implement a class like XNA's VertexDeclaration and I will get a (reasonably?) solid base to go on…
And also rewrite all my buffers to use this native pointer class.
That's it for today! And remember: http://directwinrt.codeplex.com/
Here are my latest developments at writing a clean WinRT component exposing a clean yet complete DirectX D3D (and maybe D2D as well) API to C#.
There would be a (not so) small part about WinRT C++/Cx, generic / template and the rest will be about DirectX::D3D API and my component so far. I can already tell now that the DirectX initialization and drawing has become yet even simpler than my previous iteration while being more flexible and closer to the native DirectX API!
Finally I want to say my main learning material (apart from Google, the intertube, etc..) is Introduction to 3D Game Programming with DirectX 11 by Frank D. Luna. His source code can be found at D3Dcoder. My samples are loosely inspired by his, I wrote my own math lib for example.
In DirectX there are many buffers. Shape's vertices is a typical one. One want to expose a strongly typed array which can be updated by C# and with unlimited access to the underlying data pointer for the native code as well, of course.
Platform::Collection::Vector<T> wouldn't do. Maybe it's just me but I didn't see how to access the buffer's pointer. Plus it has no resize() method. Platform::Array<T> is fixed size as far as C# code is concerned.
I decided to roll my own templated class.
The first problem is it's not possible to create generic definition in C++/Cx. One can use template but they can't be public ref class, i.e. can't be exposed to non C++ API. But there is a twist. It's possible to expose concrete implementation of Microsoft's C++/Cx templated interfaces. There are a few special templated interface with a particular meaning in WinRT. The namespace Windows::Foundation::Collections contains a list of templates that will automatically be mapped to generic collection type in the .NET runtime.
For instance by defining this template:
I have a class that I can return in lieu of IVector<T> (which will be wrapped into an IList<T> by the .NET runtime) and I can directly manipulate its internal data, even get a pointer to it (with &data[0])
This is a first step, but I need to provide concrete implementation. Let's say I want to expose the following templated class
I can't make it public, but I can write a concrete implementation manually as I need it, and simply wrap an underlying template, as in:
But this is quickly becoming old! What if I use an old dirty C trick, like… MACRO! I know, I know, but bear with me and behold!
At the end of this snippet I just declared 3 strongly typed "list" items in 3 lines! All the code is just a no brainer simple wrapper and it will also be easy to debug, as the code will immediately step inside the template implementation!
It's how I implemented all the strongly typed structure I need for this API. And I can easily add new one as I need them in just a single line, as you can see!! ^^.
The BasicScene item in my previous blog post was quickly becoming a point of contention as I was trying extend my samples functionality. In the end I had a breakthrough, I dropped it and created a class called DXGraphic which is really a wrapper around the ID3D11DeviceContext1 and expose drawing primitives, albeit in simpler (yet just as complete) fashion, if I could.
All other class are to be consumed by it while drawing. Here is what the current state of my native API looks like so far:
One just create a DXGraphic and feeds it drawing primitive. For those who are new to DirectX it's a good time to introduce the the DirectX rendering pipeline as described on MSDN.
The pipeline is run by the video card and process a stream of pixel. Most of the DirectX API is used to setup data for this pipeline: vertex, texture, shader variable (constant buffer), etc.. That must be copied from CPU memory to video card memory. And then they would be processed by the shaders, which are some simple yet massively parellelized program which process each individual vertices and turn them into pixels. In a way they are the real drawing programs, the rest is set-up.
At least 2 of these shaders must be provided by the program: the vertex shader and the pixel shader. The vertex shader will convert all the vertex in the same coordinate system in box of size 1 (using model, view and projection matrices), and the pixel shader will output color for a given pixel.
Shaders (pixel and vertex so far) are loaded by the PixelShader and VertexShader class. I used shaders found in Frank Luna sample so far and haven't written my own. Here is the MSDN HLSL programming guide, and here is an HLSL tutorials web site.
The PixelShader also takes a VertexLayout class argument. Which describe the C++ structure in the buffer to the shader. I'm only using BasicVertex class so far. In the (strongly typed buffer class) CBBasicVertex, CBBasicVertex.Layout return the layout for BasicVertex.
I have some vanilla state class, RasterizerState can turn on/off wireframe and setup face culling.
BasicTexture can load a picture.
Finally shapes are defined by one (or, optionally) many vertices data buffer and (optionally) an index buffer. I used strongly typed one: VBBasicVertex, IBUint16/32. They can be created manually or I have an helper class, MeshLoader to create some.
One of the sample update the vertex buffer with C# on each rendering frame!
MeshLoader will also returns whether the shape is in right or left handed coordinate system. DirectX use left handed, but some model are right handed. The ModelTransform class takes care of that, as well as scaling, rotation and translation.
To draw, one setup shaders, states. Then enumerate all shapes, set its texture, its shape and call draw.
Also one can pass variable to shaders (i.e. computation parameters) by using strongly typed constant buffer. A few are defined, CBPerFrame (contains lighting info), CBPerObject (contains model, view and projection matrices).
There is a private class used by almost all class in this API: ContextWatcher.
Most class in this API have buffers or data that are DirectX context bound and need to be reset when the context is destroy, recreated when it is, etc. This class take care of the synchronization. It is important to understand it before hacking this library.
To handle input I use a couple of method / events from the CoreWindow class which are wrapped in my InputController class.
GetKetStates(params VirtualKeys[]) will use CoreWindow.GetAsyncKeyStates().
GetTrails() will return the latest pointer down events. On Windows 8 mouse, pen, etc.. have been superseded by the more generic concept of "pointer" device as explained on MSDN.
The CameraController will use the InputController to move the camera and/or model around.
HOME key will reset the rotation, LEFT CONTROL will move model. MOUSE WHEEL will move the camera on the Z axis. Mouse Drag will rotate the camera or model (if LEFT CONTROL is on) using the following rotation:
i.e. if M1 (x1,y1,0) is the mouse down point, and M2 (x2,y2,0) is the next drag point and O (x1, y1, –screenSize) is a virtual point above M1. The camera controller calculate the rotation that transform OM1 into OM2 and apply its opposite to the camera. The opposite because dragging the world right is like moving the camera left.
Initially I was keeping the camera and model transforms as matrices (along those line on MSDN). Unfortunately when I introduced mouse handling to drag the model. Continuously multiplying model matrix by mouse transform matrices introduced unsightly numerical errors. Particularly shear transformations.
After much tinkering I settled on representing the model transformation as follow:
ModelTransform = Translation * Rotation (as quaternion) * Scaling
One can multiply quaternion together and there would be some small numerical error but it will remain a rotation!
Quaternion can be created with the DXMath class:
(x,y,z) being the axis of rotation.
About quaternion math (as I didn't learn it at school :~) I found the following links: http://www.idevgames.com/articles/quaternions http://willperone.net/Code/quaternion.php
In the end all transformation are nicely wrapped in some class in Utils\DirectX
Camera is the typical DirectX camera.
Model is the typical DirectX model transformed decomposed in Translation, Rotation, Scaling. There is also a LeftHanded property as it should be handled differently whether the model's coordinate are in left handed or right handed space.
The Transforms class is a utility class to create transform matrix.
CenteredRotationTransform is used to rotate the model around a point, that can be moved.
To show what the final code look like here is the slightly simplified code that setup the scene with the column (2nd screen shot).
Even if it's long it's much simpler than the C++ version, and just as versatile!
And the render method that render all samples so far
On my machine the app spend about 6 seconds loading textures at the start. However if I target x64 when compiling (my machine is an x64 machine, but the project targets x86 by default) the startup drop to about 0.2 seconds!!!
Also, in 32 bits mode the app will freeze every now and then while catching a C++ exception deep down the .NET runtime-WinRT binding code (apparently something to do with the DirectArray) but on x64 it runs smoothly.
With Windows 8, WinRT, C++/Cx I think the time to write an elegant C# / XAML app using some DirectX rendering in C++ has finally come! Thanks WinRT! :-)
Here I just plan to describe my attempt at learning DirectX and C++ and integrate it nicely in a C# XAML app.
My first exercise was to attempt to create a simple DirectX "Context" as WinRT C++/Cx component that can target multiple DirectX hosts: SwapPanel, CoreWindow, ImageSource and render an independent scene and initialize and use it from C#.
Note this is a metro app. It requires VS2012 and Windows 8.
First the appetizers, here is my simple scene:
And it is created with the code below, mostly one giant C# (5, async inside!) object initializer:
There is much to say about this sample but I won't go into the detail of DirectX too much (this is a very basic sample as far as DirectX is concerned and the source code is available, at the bottom), instead I will mostly speak about C++/Cx – C# communication.
First there is the DirectX context, here is an extract of its important methods and properties
DXContext is a 'public ref class' meaning it's a shared component (Can be used by C#), it must be sealed (unfortunately… Except those inheriting from DependencyObject, all C++ public ref class must be sealed, as explained here, inheritance section)
All the public members are accessible from C#, the most important are the overloaded "SetTarget()" methods that will set the DirectX Rendering target. Can be changed anytime (although it seems to be an expensive operation, I think rendering on a Texture should probably be done an other way, when I will know better).
Finally it hold all DirectX device information as internal variables. These can't be public or protected as they are not WinRT component. But, being internal, they can be accessed by other component in the library, it's how the scene can render. I tried to trim the fat to the minimum number of DirectX variable that such an object should contains.
Note plain C++ doesn't have the 'internal' visibility, this is a C++/Cx extension and it means the same thing as in C#, i.e. members are accessible by all code in the same library.
ComPtr<T> is a shared COM Pointer. Take care of all reference counting for you.
DXContext implements INotifyPropertyChanged and can be observed by XAML component or data binding! I also created a macro for the INotifyPropertyChanged implementation as it is repetitive and I had to write a long winded implementation due to some mysterious bug in the pure C++ sample.
It has a Snapshot() method to take a screen capture! And BasicTexture have a method to save to file.
My first attempt at using this DXContext was to create a Scene object which contains ISceneData object.
An ISceneData can be ripped of, more or less, verbatim from various DirectX sample around the web. And the Scene object will take care of initializing it and rendering it when the time is right. I have 2 ISceneData implementations: CubeRenderer, HelloDWrite.
Unfortunately all the sample on the web often have a lot variables, all mixed up and trying to sort out what does what takes some thinking.
So I created a BasicScene which takes a list of shapes with texture and location (transform) and renders it
It also has some Background and a Camera, all WinRT component that can be controlled by C++.
The BasicShape contains point and index buffer for triangles and has various create method that will populate the buffers.
The BasicTexture can load a file or be created directly in memory (and rendered to by using Context.SetTarget(texture)), and contains the texture and textureView used by the rendering process.
Each of these class has very few DirectX specific variables making it relatively easy to understand what's going on.
When C++/Cx components are called from C#, the .NET runtime does some type mapping for you. There is the obvious, the basic types (int, float, etc..) and value types (struct) are used as is. But there is more, mapping for exception and important interfaces (such as IEnumerable).
It's worth having a look at this MSDN page which details the various mapping happening.
Also, to refresh my C++ skill I found this interesting web site where most Google query lead to anytime I had a C++ syntax or STL issue!
You can't pass custom exception or exception's message across ABI (C++ / C# / JavaScript boundary). All that can pass is an HRESULT, basically a number. Some special number will pass some special exception as explained on this MSDN page.
If you want to pass some specific exception you have to use some unreserved HRESULT (as described here) and have some helper class to turn the HRESULT in a meaningful number.
Here comes the ExHelper class just for this purpose
Note you can't expose Platform::Exception publicly either (well maybe you can, but it was troublesome). But you can expose an HRESULT. The runtime will automatically turn it into a System.Exception when called from C#.
C++/Cx is pure C++. There is no garbage collection happening when writing pure C++ app, even if one use the C++/Cx extension. The hat (^) pointer is a ref counted pointer that can automatically be turned into a C# reference.
That can lead to a problem when 2 C++/Cx components reference each other as in the following (simplified) scenario
To solve such problem WinRT comes with a WeakReference. The class A can be modified as follow to not hold strong reference:
Sometimes logging is helpful for debugging. For example I log creation and deletion of some items to be sure I don't have any memory leak. However, printf, cout<<, System::Console::WriteLine won't work in a metro app.
One has to use OutputDebugString, output will appears in Visual Studio output window.
If you use C# you must love IEnumerable, IEnumerator, IList and LINQ. When writing a C++ component you should make sure it plays nice with all that.
The .NET runtime does some automatic mapping when calling in C++/Cx component, as explained here.
In C++ one shall expose Windows::Foundation::Collection::IIterable<T> to be consumed in C# a System.Collections.Generic.IEnumerable<T>.
IIterable has a single method First() that return and IIterator. That will be mapped to an IEnumerator.
However there is a a little gotcha. Unlike C# IEnumerator which starts before the first element (one has to call bool MoveNext()) IIterator starts on the first element.
One can return an Windows::Foundation::Collections::IVector<T> to be mapped to an IList<T>. There is already a class implementing it:
Or one can use vector->GetView() to return a Windows::Foundation::Collections::IVectorView<T> that will be mapped to an IReadonlyList<T>.
C++ 0x (or whatever is called the latest C++ standard) introduced lambda expression to create inline function, much like in C#.
There is a long description of on MSDN.
Basically it has the following syntax
[capture variable](parameters) –> optional return type specification { body }
It's all quite intuitive except for the capture part. You have to specify which value you want to capture (this, local variable) and you can specify by value or reference (using the '&' prefix), or all local variables and this with equal as in: '[=]'
In some instance I had problem assigning lambda to a function pointer, for example the code below didn't compile for me (maybe I missed something?)
Fortunately C++0x introduce "function object" which works fine
Remark the function object will keep reference to the captured variable as long as it exists! Be careful with circular reference and WinRT component (hat pointers '^').
With Metro Async programming is an inescapable reality!
Of course in your C++/Cx code you can use the class from System.Threading.Tasks, but there is also some C++ native API just for that: task<T>.
One can create task from .NET IAsyncOperation or a simple C function:
Conversely one can create .NET IAsyncOperation from task or C function with create_async, as in:
Tasks can be chained with 'then' and one can wait on multiple task by adding them with '&&' such as in:
Remark tasks are value type and start executing immediately once created (in another thread).
When chaining tasks with 'then' you can capture exception from previous task by taking a task<T> argument instead of T. And put a try/catch around task.get(). If you do not catch exception it will eventually brings the program down.
It proved pleasantly surprisingly easy to have the C++ and C# works together with WinRT. Smooth and painless. C++ 11 was easier to use that my memory of C++ was telling me. And in the end I mixed and matched them all with great fun. To boot my C# app starts real quick (like a plain C++ app)! It's way better than C++ CLI!
A few frustrating point with C++/Cx still stands out though:
download it from here!
Recently I needed a Silverlight menu. I found the following implementations:
But none behave like an ordinary HeaderedItemsControl and all did impose some constraint which make using databinding, templating or MVVM more awkward than it should be. So here is my take on this control.
Below I'm going to quickly explain the salient point of the implementation and then show some usage samples.
The main class is MenuItem. Inspired by WinForm, WPF, I did create a Menu class but it's just an optional container with a different layout (and it also hide the arrow on the side).
The UI, at its most basic is defined as follows (non necessary styling element removed)
There is a Transparent Grid background grid for hit testing, a border at lowest Z order for highlight, the content presenter for the header and an ItemsPresenter in a Popup for children.
Now the most basic implementation of an ItemsControl just setup children. I also copy the style in PrepareContainerForItemOverride, as MenuItem's children item are whole new MenuItem with the default style. This code make sure all children and children's children and so on looks the same as the top level MenuItem, in case it has been styled.
To manage the popup by code I added an IsOpen property
Now all is needed is to overrides OnMouseEnter, OnMouseLeave, OnMouseLeftButtonDown, OnMouseLeftButtonUp.
Most of them do little and delegate the thinking to the class MenuPopupManager. This class maintains a list of all open popup, position the Popup appropriately, hide those Popup that need be hidden and close all MenuItem after a timeout.
Ideally it should close all menu when the user click outside the MenuItem but I could not get it to work reliably.
A skeleton implementation looks like that
Obviously MenuItem implement Click and triggering an ICommand and hiding itself after that. If no Click event handler or Command is defined it will do nothing (including not closing the menu), making it easy to embed advanced control in popup menu.
And lastly I added a bit of Styling. I downloaded the Silverlight toolkit and took the SystemBrushes class from the SystemColor theme's source code. Used various SystemBrushes's Brush for styling the Menu and MenuItem.
The nice silverish background brush of the Menu is SystemBrushes.ButtonGradient
For the mouse hover effect where an highlight color (quickly but progressively) appears I finally took the time to use animation and view state. It proved to be real easy!
First I setup 2 states. One which progressively increased the opacity of the background control (PART_HighlightBg). The second state does nothing, in effect reverting the opacity change instantly. I could have used an animation too but I liked the shorter template and result is good too.
Then I simply setup the state in mouse handler
And now some example on how to use this control.
First I'll define a data model used for my MVVM usage
Then I can do some simple binding
Remark to setup the Command on the MenuItem I should use the ItemContainerStyle property.
I can also add a single parentless MenuItem anywhere. And I can style it too, setup the background brush for instance (whether it's parentless or not) and the value will flow down.
Today I watched this video about using OData in a WinRT app: http://blog.jerrynixon.com/2012/08/new-episode-devradio-let-odata-make.html
To summarize he (Jerry Nixon) add a service reference to the Netflix OData API at: http://odata.netflix.com/Catalog/
and then proceed to do something like that
protected override void OnNavigatedTo(NavigationEventArgs e) { var _uri = new Uri("http://odata.netflix.com/Catalog/"); var ctxt = new NetFlixService.NetflixCatalog(_uri); var data = new DataServiceCollection<NetFlixService.Title>(ctxt); var query = from t in ctxt.Titles where t.Name.Contains("Star Trek") select t; data.LoadCompleted += delegate { this.DataContext = data; }; data.LoadAsync(query); }
Basically he create an OData service reference, run a database query against it and show the results.
What I wanted to change is, use the new async / await keyword in .NET4.5 instead of the LoadCompleted delegate.
There seem to be no obvious way of doing that! Time to Google!
From the await (C# Reference) reference it seems that await can (only) be applied to a method returning a Task, and a Task (from Googling) can be created from IAsyncResult.
So first I started by creating a very simple and reusable IAsyncResult implementation class:
public class SimpleAsyncResult : IAsyncResult, IDisposable { ManualResetEvent waitHandle = new ManualResetEvent(false); public void Finish() { IsCompleted = true; waitHandle.Set(); waitHandle.Dispose(); } public void Dispose() { waitHandle.Dispose(); } public bool IsCompleted { get; private set; } public object AsyncState { get; set; } public bool CompletedSynchronously { get; set; } public WaitHandle AsyncWaitHandle { get { return waitHandle; } } }
With that I can easily create an extension method for my OData classes returning a Task:
public static class OData { public static Task<DataServiceCollection<T>> AsyncQuery<T>(this DataServiceCollection<T> data, IQueryable<T> query = null) { var asyncr = new SimpleAsyncResult(); Exception exResult = null; data.LoadCompleted += delegate(object sender, LoadCompletedEventArgs e) { exResult = e.Error; asyncr.Finish(); }; if (query == null) data.LoadAsync(); else data.LoadAsync(query); return Task<DataServiceCollection<T>>.Factory.FromAsync(asyncr , r => { if (exResult != null) throw new AggregateException("Async call problem", exResult); return data; } ); } }
Remark here I wrap the exception because I don't want to lose the stack trace (with "throw exResult")
And voila I can update my NavigatedTo method to be async friendly!
protected async override void OnNavigatedTo(NavigationEventArgs e) { var _uri = new Uri("http://odata.netflix.com/Catalog/"); var ctxt = new NetFlixService.NetflixCatalog(_uri); var data = new DataServiceCollection<NetFlixService.Title>(ctxt); var query = from t in ctxt.Titles where t.Name.Contains("Star Trek") select t; await data.AsyncQuery(query); this.DataContext = data; }
One of the pet project I am working on now is an installer application (in D!). One of the problem I need to solve is automatic archival of my files.
Well it turn out that MSBuild (the underlying build tool used by Visual Studio) is quite extensible. While I haven't read anything which made me a MSBuild master yet, I found this library (msbuildtask) with plenty of MSBuild goodies (including a zip task).
And also a post on Bell Hall's blog which explain how to take advantage of this task to zip your project output automatically.
Here, I reproduced it below:
Monday, September 01, 2008
Automated builds are one of the core fundamental musts for software development. However, your build doesn't just have to build the solution and execute your unit tests. For IronEditor, my build also creates two zip files. One zip is the output from the build for archiving purposes, the second is my deployment zip - the zip which actually gets pushed up to CodePlex containing only the files required by the application. In this post, I will cover how you can get MSBuild to zip your build output.
To use zipping functionality within your build scripts, you need to use the MSBuild Community Tasks which is a great collection of MSBuild extensions and a must if you are using MSBuild.
In order to zip your files, you need to specify which files you want to zip. In the script below, I create an ItemGroup called ZipFiles, this includes all the subdirectories (**) and files (*.*) from my Release directory which is my build output folder. I also specify that this group should not include any other zip files. I then create a Builds directory if it doesn't already exist. Finally, I use the Zip task, passing in my ZipFiles ItemGroup which the task uses to know which files to include.
<Target Name="BuildZip" DependsOnTargets="Test"> <ItemGroup> <!-- All files from build --> <ZipFiles Include="$(BuildDir)\Release\**\*.*" Exclude="*.zip" /> </ItemGroup> <MakeDir Directories="$(BuildDir)\Builds" Condition="!Exists('$(BuildDir)\Builds')" /> <Zip Files="@(ZipFiles)" WorkingDirectory="$(BuildDir)\Release\" ZipFileName="$(BuildDir)\Builds\IronEditor-Build-$(Version).zip" ZipLevel="9" /> </Target>
The most important property is the WorkingDirectory, this is the root directory where all the files you want to exist live. If you don't have this set correctly, you will have the additional directories in your zip file which are navigated in order to get to your actual files and just looks rubbish.
My deployment zip also looks very similar and is executed after the above target. The only different is that I individually specify which files and directories to include. For some directories, such as Config, I still include all sub-directories and files it contains as they will all be relevant and required.
<Target Name="BuildInstallZip" DependsOnTargets="BuildZip"> <ItemGroup> <!-- Selected Files --> <InstallFiles Include="$(BuildDir)\Release\Config\**\*.*" /> <InstallFiles Include="$(BuildDir)\Release\LanguageBinaries\**\*.*" /> <InstallFiles Include="$(BuildDir)\Release\SyntaxFiles\**\*.*" /> <InstallFiles Include="$(BuildDir)\Release\Fireball.*.dll" /> <InstallFiles Include="$(BuildDir)\Release\IronEditor.UI.WinForms.exe" /> <InstallFiles Include="$(BuildDir)\Release\IronEditor.UI.WinForms.config" /> <InstallFiles Include="$(BuildDir)\Release\IronEditor.Engine.dll" /> <InstallFiles Include="$(BuildDir)\Release\Microsoft.Scripting.Core.dll" /> <InstallFiles Include="$(BuildDir)\Release\Microsoft.Scripting.dll" /> <InstallFiles Include="$(BuildDir)\Release\System.Core.dll" /> </ItemGroup> <MakeDir Directories="$(BuildDir)\Builds" Condition="!Exists('$(BuildDir)\Builds')" /> <Zip Files="@(InstallFiles)" WorkingDirectory="$(BuildDir)\Release\" ZipFileName="$(BuildDir)\Builds\IronEditor-$(Version).zip" ZipLevel="9" /> </Target>
One thing which tripped me up was that while my ItemGroup was created within a target, it actually has global scope. As such, you need to call the two groups within the two different targets something different.
Once my script has executed, I have two zip files created - one containing everything, the other ready to be released on CodePlex.
A few last precision before launching into D coding.
It turns out that, if you have a few project which depends on each other, as in:
You don't need to set the library path, include path, etc.… Visual D will take care of that for you!
Ha well, there is one last thing that is needed before getting started coding D like crazy, it's good documentation!
The Phobos documentation can be found here.
Well you also need to read about D language syntax! A web exhaustive description can be found there. I should say for such task I like to have a book. I bought this one (there are not that many! ^_^).
I bought the kindle version, then I though better of it (Kindle book are not good at being read back and forth and jumping chapter like crazy, as is needed in a learning process!) and then the paper back version! I left a bad comment because it didn't answer the question how to compile the damn thing! (which, if you have read my D post so far, we figured out by now!) but I like it, sorry about the comment.
Ho, almost missed that, when you "installed" D (unzipped it!) you also installed the offline documentation! Check out (on your disk)
DROOT/dmd2/html/d/index.html DROOT/dmd2/html/d/features2.html DROOT/dmd2/html/d/phobos/phobos.html DROOT/dmd2/html/d/lex.html
Thanks to the paper version of the D language I was able to browse through all 350 pages of it in an hour (it's just a book about syntax hey!). I discover a really interesting and innovative statement, a "using" on steroid, scope()
exert from the web site:
ScopeGuardStatement: scope(exit) NonEmptyOrScopeBlockStatement scope(success) NonEmptyOrScopeBlockStatement scope(failure) NonEmptyOrScopeBlockStatement
If there are multiple ScopeGuardStatements in a scope, they are executed in the reverse lexical order in which they appear. If any scope instances are to be destructed upon the close of the scope, they also are interleaved with the ScopeGuardStatements in the reverse lexical order in which they appear.
writef("1"); { writef("2"); scope(exit) writef("3"); scope(exit) writef("4"); writef("5"); } writefln();
Of course there are many more interesting stuff in D, just picking! Have a Go ! Pun intended!


text: My partner and I chose Mumbai Moments based on other Trip Advisor reviews and were not disappointed. Amish was fantastic to work with in planning our day. He was more than kind and accommodating our needs. We arrived around 12:30 and chose to do a six hour tour without meals. Manik, our guide, was delightful. She was very knowledgeable and... More


text:
Reuters Photojournalism
Our day's top images, in-depth photo essays and offbeat slices of life. See the best of Reuters photography. See more | Photo caption
Ethiopia's salt trails
For centuries merchants have traveled to Ethiopia to collect salt from the surface of the vast desert basin. Slideshow
Sponsored Links
Scientists discover 120 million year-old ant
BERLIN (Reuters) - German biologists have discovered a new species of ant they believe is the oldest on the planet, dating back around 120 million years.
Researchers from Karlsruhe's Natural History Museum found the 3-millimeter-long (0.118 inch) insect in the Amazon rainforest in 2007, and hope it will shed light on the early evolution of ants.
"It's by far the most spectacular find of my 26-year career," said museum biologist Manfred Verhaagh on Tuesday.
Scientists from Karlsruhe originally found an unidentified species of ant of a similar type in the Brazilian rainforest in 2003. However, due to an accident in the laboratory, the insect dried up, making further research impossible, Verhaagh said.
Last year a separate team from the museum's research body was in the forest investigating fungus when they stumbled upon the tiny insect, and named it "Martialis heureka".
Resembling a miniature wasp, the insect is like no other ant, and probably dates back 120 million years, making it the oldest still inhabiting the earth, Verhaagh said. The scientists used DNA samples from its front leg to establish its likely age.
The last discovery of a new ant species was in 1923, he added.
(Reporting by Josie Cox, Editing by Mark Trevelyan)
- Tweet this
- Link this
- Share this
- Digg this
- Reprints


text:
This full website whois and analysis report on Learn4good.com was ran on May, 20, 2013.
eNom, Inc.
Patrick Thompson ()
PO Box 10010
Patrick Thompson
PO Box 10010
Fax: 0000000000
Patrick Thompson
PO Box 10010
Fax: 0000000000
We include detailed information like the server IP Address which is 18.104.22.168. Learn4good.com resides at SourceDNS in Lansing, MI, United States. The domain Learn4good.com was first registered on 06/18/2003 which was 9 years and 11 months ago and is set to expire on June, 06, 2014.
The Learn4good.com Whois shows that the registrar is eNom, Inc. - but a full analysis for Learn4good is below to assist you in your research including Whois, Alexa traffic rank of 9982, and server details.
The official title of Learn4good.com is: Online college application free,colleges in the US,study abroad in Italy Spain France UK,English schools London,learn Spanish language,Italian arts classes NY CA TX,job postings USA,business courses,TEFL TESOL
The official description of Learn4good.com is:
Online college application free: Colleges in the US, study abroad in Italy, Italian arts schools, Spain, study abroad in France, study English in UK, English schools London, TEFL courses USA, TESOL jobs in Spain. Learn Spanish language in Spain, Spanish classes NY CA TX, free job postings USA, business schools in the US, UK, London
It is 3:39 PM CEST when you ran this report for Learn4good.com here on our website, IP-Adress.com. When it comes to Learn4good.com, you can trust that if we have Whois information available for it, we will display it further below to assist in your research of Learn4good.com. Feel free to run another Learn4good related search, or start a new query.
Timestamp Confirmation:
The Whois report for Learn4good.com was ran at 3:39 PM CEST on May 20, 2013 and the information is provided below if available.
View comments on this Learn4good whois website report below or add your own comment about Learn4good.com.
Now you can review additional Whois data for Learn4good.com below. Things like the status of Learn4good, expiration date of Learn4good.com, and Learn4good name servers.
Don't forget that Learn4good could have other domain extensions you might want to run a Whois search for and get further information about Learn4good owned services.
Hello guest sign up now! |
Remaining lookups today:
0 (Get more)
My IP is: 126.96.36.199


text:
Political, Scientific and Artistic Luminaries Awarded Dan David Prizes Wednesday, May 12, 2010
Three $1 million awards presented at gala ceremony
Left to right: TAU President Joseph Klafter, Michael Rabin, Dan David, Leonard Kleinrock, Margaret Atwood and Amitav Ghosh
An audience of prominent political, academic and business figures from around the world graced the Tel Aviv University campus on May 9, for this year's prestigious Dan David Prize award ceremony. Among them were Isaac Herzog, Israel's Minister of Welfare and Social Services; Prof. Joseph Klafter, President of Tel Aviv University and Chairman of the Board of the Dan David Prize; and Dan David, international businessman and founder of the Dan David Prize.
The 2010 awards were presented to:
Ambassador Luigi Mattiolo receives Dan David Prize on behalf of Italian President Giorgio Napolitano from Dan David (left) and Joseph Klafter (center)
The sparkling program included performances by the Vertigo Dance Association, which interpreted the concept of time into motion and depicted advanced computer technology through its original choreography; the Ruth Kanner Theater Group, which staged excerpts from laureate Amitav Ghosh's Sea of Poppies; and the Raanana Symphonette Orchestra, which performed the overture of the opera Forza del Destino by Verdi and the "Coronation March" from Giacomo Meyerbeer's opera The Prophet.
The Dan David Prize has been awarded since the year 2002 to individuals or institutions with proven, exceptional and distinct excellence in the sciences, arts, and humanities who have made an outstanding contribution to humanity, in each of the three time dimensions of past, present, and future. One million dollars is awarded to the laureates in each of the three dimensions.
Left to right: Gabriela David, Dan David, Garry Kasparov and Prof. Joseph Klafter
The Dan David Prize is a joint international enterprise endowed by the Dan David Foundation and headquartered at Tel Aviv University. Each year the International Board for the prize chooses one field within each time dimension. Following a review process by independent Review Committees comprised of renowned scholars and professionals, the International Board then chooses the laureates for each field.
As in past years, the laureates generously donate 10% of their prize money towards 20 TAU scholarships for outstanding doctoral and post-doctoral students from all over the world.
A video of the ceremony can be found at http://video.tau.ac.il/General/Dan_David/2010.
Quick links Home About AFTAU Upcoming Events About TAU Publications Donate
Other recent news
©2013 American Friends of Tel Aviv University, All Rights Reserved.


text:
If you play a 15-16 year old in your first team, does he risk burning out and not reaching his full potential? Just worried if I'm starting my 16 year old left back wonderkid in too many games. He's started 20 games and it's January.
All the latest news & information about Football Manager 2013.
Want to know how much each manageable team on Football Manager 2013 has to spend? Then look no further as we have a comprehensive list of transfer budgets for you to view.
Football Manager 2013 Best Players & Wonderkids
Browse our wonderkids section to find all the best young players on Football Manager 2013.
Download this shortlist for Football Manager 2013 with other 300 wonderkids. The shortlist will allow you to be able to quickly find the players in your game.
Download ready made shortlists with amazing wonderkids and bargain buys. Making it easy for you to find those world class youngsters!
Download real player face pictures for use on the player profiles.
View our guide to find out which attributes a player needs to best perform in certain positions.
Ever seen the terms CA or PA before and felt completely confused? Read our guide to find out all about player ability in Football Manager 2013 and how to get the most of of a players potential.
Real player faces, real club & competition logos, real kits and much more.
Download real player face pictures for use on the player profiles.
Real team and competition logos for Football Manager 2013
Give your Football Manager a complete new look with one of these excellent skins.
Add new player and stadium background images into your FM game.
Give your teams real 2D & 3D kits that work on the 3D match view.
These editors allow you to edit your current FM game and do things such as increase your finances, improve players skills and much, much more.
Other useful programs for FM such as Genie Scout a great way to find new players.
Download things such as sound packs, new match balls, new dugout, new goal nets etc...
Download ready made tactics for Football Manager 2013.
Is there something you want to know about tactics in Football Manager 2013? Then take a look here if you want to learn how to play like Barca or if you just want to find out how to download a tactic created by one of our experts.
Visit the tactic section on our discussion forums and ask for help or share your knowledge.
We have a huge range of incredible tactics that can help any team reach the top.
Think you have a great tactic? Upload it here and prove it!
A comprehensive guide to player training in Football Manager 2013.
Free latest transfer window updates, new leagues and official patches.
Download latest transfer updates to make sure that players are at the correct teams and all the right teams have been promoted and relegated.
Various user made challenges and fantasy databases for FM 2013. Such as the Old Firm in the UK and 'Mega Leagues'
Add new playable leagues to FM 2013.
View out discussion forums for help and tips on how to edit Football Manager 2013.
If you play a 15-16 year old in your first team, does he risk burning out and not reaching his full potential? Just worried if I'm starting my 16 year old left back wonderkid in too many games. He's started 20 games and it's January.
im not 100% sure, but i read somewhere that they can still reach there full PA, but then their stats decline a whole lot earlier and faster than usual.
check out this post by Raikan007,
The Complete CA/PA Thread
under notes on CA, it talks about burn out,
How do you know how much is too much? This post is disturbing to me because I start a 16 year old at RB. Is there any specific number of games or km run or something? Can you think of any real world examples of burnout?
i never ever play a player till he reaches 18, or if he is a proper wonderkid, maybe late 17, not before they have had a proper year in youth training, tutoring etc.. or maybe a loan move.
Owen was a perfect example, there is also some potentials that people debate about, for example Robinhio and Pato, where both really young and good. Then moved to Europe and struggled. Burned out or they could have just struggling to adapt.
Yes 16 is too young too be a regular first team starter. Depending on who you are managing look to play in low key games like league cup and last 20 min or so of some other games where you a are winning. Raikan007 thread mentioned above is a must read.
As others have said Owen is the best real life example.
Just like to point out though, a player who is played too much too young will still reach his potential, but he will reach it earlier and will then start to decrease younger. So for short-term gain it could, debatabley, be better to burn out your players
Of course you run the risk of injury, which would effect his potential.
And the flipside of people using Owen as an example of a player who "burnt out" is Messi. He was played in favour of Ronaldinho when he was young, and so he is peaking very early. (I am not saying Messi has complelety peaked yet! But as (Cristiano) Ronaldo has peaked now in his late 20s, Messi is becoming good in his mid 20s and will probably have a slightly shorter career at the top than Ronaldo!)


text:
August 2nd, 2010 by Amanda Young
Book I in the Chicken Ranch Series
Disowned and cast out of his home, eighteen year old Declan Mayo turns to the only thing he can think of to help him get back on his feet. Working at Chicken Ranch, a rural brothel that caters to women and gay men, seems like the perfect solution. He isn't about to let a lack of sexual experience stop him from taking what he sees as his only way off the streets.
Falling in love with one of his clients wasn't in the game plan, but Declan can't seem to help himself. Killian Hamilton is sweet and kind, with a stutter Declan can't help but find adorable. Surely, if anyone could overlook Declan's choice of employment, it would be a kindhearted man like Killian.
What Declan doesn't count on is Killian's connection to one of the brothel's regular clients, or the way his love life is about to blow up in his face.
Print - $9.99
Also available as an ebook. Click here for more details.
With a ragged sigh, he started up the darkened lane. Every step made the blisters on his heels burn like fire from where his shoes had rubbed his skin raw. As much as he would've liked to turn around and run in the opposite direction, he didn't have many options. Pride didn't make him any less homeless or fill the empty ache of a stomach that had gone too long without sustenance. Going back the way he'd come would only mean another long night on a hard park bench, worrying about whether he'd be accosted in his sleep or arrested for something he couldn't help.
By the time he shuffled half a mile to the large colonial house, Declan was beginning to think the hustler who'd clued him in to the existence of a local, all-male brothel had been yanking his chain. Granted, prostitution was illegal in much of the country, but surely someone who operated a thriving, modern-day whorehouse would have the money to pave their driveway.Dread crept up his spine and settled at the base of his skull as he climbed the steps and warily approached the front door. Although interior lights were on, assuring him he wouldn't actually wake anyone up, he was a little afraid to knock. God only knew what he would discover once he did.
Would someone answer the door with a shotgun and accuse him of trespassing on private property? Better yet, maybe this was all a setup, and he'd find himself kidnapped and sold into a ring of slavers looking for fresh meat.His stomach gurgled, too empty to work up a full growl, and reminded him why he was there. Good or bad, there was only one way to find out what fate had in store for him. Declan steeled his courage and rang the doorbell.
"State your business."
Declan jumped and glanced around, only then noticing the small voice box located on the door frame. He pressed the Talk button and leaned in close, not sure how good the little box's range was. "I, ah…" Fuck. What the hell am I supposed to say? "I'm here to inquire about a job."
The door buzzed and swung open, revealing a young man with bouncy chestnut curls and big brown eyes that reminded Declan of the heifers on his old friend Brody's farm. He wore a prim white dress shirt, buttoned up to the stiff collar, and pressed beige slacks — not exactly the kind of attire Declan thought of as a whore's ensemble.
"So," the man said, looking Declan up and down. "You'd like a job, huh?"
"I, uh…I guess so."
"You guess?" The brunet snorted and stepped aside. "Come on in. My name's Colt. You'll have to speak with Mr. Graves about a position, but he's always on the lookout for new boys."
Declan stepped inside and gawked, feeling out of his element. His family wasn't poor, but being middle-class did not provide crystal chandeliers. Not that his family was providing him with much of anything other than scorn these days.
Directly in front of him were two impressive curved staircases that led to the second floor. A hallway disappeared behind each set of stairs. Spacious sitting rooms were located to his left and right. As he looked on, a buff, bare-chested guy dressed in black leather chaps, sans anything underneath, jogged down the stairs and disappeared into the sitting room on the left.
All the saliva in Declan's mouth dried up. His gaze strayed to the doorway, hoping the practically naked man would appear over the threshold and let him take a long gander at the goodies he was sporting.
The door closed with a bang behind him, making him jump and jerk around. His face heated as the other man — Colt — shot him curious look.
Colt smirked, drawing attention to his firm lips. "You're a jittery little thing, aren't you?"
Declan shrugged. "No, sir. Well, not usually."
"You don't need to call me 'sir.' We're all working stiffs around here."
"Oh. Are you, um, are you a…?" Declan let his question trail off, unsure of what title he was supposed to give the prostitutes. They would undoubtedly take offense to being called whores.
"I'm not a rent boy, if that's what you mean. I assist Mr. Graves. You know, you're lucky it's a Monday, otherwise the boss would be too busy to see you without an appointment."
"Well, I, um, appreciate that." Declan winced. He sounded like a complete moron. The owner — was there a male term for madam? — would probably take one look at him, think he was simpleminded, and send him packing.
"Mm hmm," Colt said, turning his back on Declan. "Follow me, please."
Declan trailed after the other man, down the hallway to the right of the stairs. Colt stopped at the first door and knocked lightly. A deep male voice called out for them to enter.
Colt opened the door and waved for Declan to go in ahead of him. "In you go."
Declan stepped over the threshold, quickly taking in the tidy office before his gaze zeroed in on the man behind the desk.
"This guy –" Colt glanced at Declan, waiting.
It took Declan a second to figure out what the man wanted. "Oh. Um, my name's Declan. Declan Mayo."
"Right. Declan is here about a job." Colt backed out of the room and closed the door. The tiny click of the latch catching sounded like a gunshot to Declan.
"Have a seat, Declan." The raven-haired man behind the desk motioned toward the chair in front of Declan and then folded his arms across the impressive width of his chest. A charcoal gray sports coat pulled taut across the shoulders, while a white, scoop-neck shirt drew attention to the bronzed skin at his throat. The overhead light caught the slight traces of silver at the man's temples and made the individual hairs shine like strands of the finest silk.
Declan sat on the edge of the seat, his back protesting. Used to slouching, the ramrod-straight posture felt unnatural. As unobtrusively as possible, he stared at the older man and waited for him to speak first.
"What kind of work are you looking for, son?"
"I, uh…" Why is this so hard? If I can't say it aloud, I sure as hell won't be able to actually do it. "I want to…" Declan inhaled and let everything out in one long rush of air. "Iwanttohavesexformoney."
~Scandalous Minx/Literary Nymphs Reviews
"Chicken Ranch: Hunger is a very unique story that will touch the heart and bring the heat. The characters are engaging and sexy in their own way with a sizzle to their relationship that can't be ignored. This is not your average love story and Chicken Ranch is not your average place. Amanda Young's newest series is definitely full of surprises and second chances."
~Kimberley Spinney/Ecata Sensual Romance
"In this story we learn that trust is something that bonds love eternal, that without it there is no guarantee of a true relationship. These two men make your heart sing, your soul cry, and your body crave fulfillment. Love is not a gender it's an emotion, a blending of souls which is proven by this amazing author."
~Ambrosia/Whipped Cream Reviews
"Amanda created two very likeable [sic] characters with unique names and personalities. The plot was solid, the narration perfect, and the dialogue very believable. The ending was sweet as hell. Whenever I am looking for something with meaning behind it, with a solid plot with a point to be made, you can bet I'll be looking for another of Amanda's books."
~Michele/Michele N Jeff Reviews


text:
United States
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- West Virginia
- Wisconsin
- Wyoming
Commercial Printing in East Brookfield, MA
Helpful Definition for: Commercial Printing
Commercial printing businesses in East Brookfield are reliable and professional services that take thorough care of production and printing needs, delivering quality work at reasonable prices. They offer both offset printing and digital color services for catalogs, brochures, full color brochures, book printing, poster printing, post card printing, calendar printing, and all other printing press needs. They have a wide range of commercial color printing press services and direct mail technologies. They carefully assess the print requirements and offer suggestions to ensure a color printing outcome that saves money.
Recent News from the Green Blog
The feel, smell and touch of baby (talcum powder) has always comforted me. It refreshes you skin and is oh so soft. I see how it lingers in the air and this brings concern for our health and the environment. Talc has been linked to several different kinds of cancer, including lung and ovarian cancer. Talc can contain asbestos in..


text:
New RP 2.0 Website
Listener Supported
Now Playing:
Hooverphonic - We All Float
Talking Heads - Road To Nowhere
The Rumour Said Fire - The Balcony
Cassandra Wilson - Death Letter
Log In
] [
Support RP
Help & Info
Your Ratings
click here for album info & other purchase options
Arcade Fire
Sprawl II (Mountains Beyond Mountains)
The Suburbs
Last Played:
May 15, 2013 - 03:05
Avg. Rating:
(Total Ratings: 1285)
Your Rating:
(Log in above to Rate)
Ratings Dist:
Rate Song:
1 - Sucko-barfo
2 - Marginal
3 - Ho Hum
4 - Acceptable
5 - Decent
6 - Pretty Good
7 - Quite Likeable
8 - Most Excellent
9 - Outstanding
10 - Godlike
Share this song
Tweet this song
Artist Website
Artist Search
Lyrics Search
Wikipedia Entry
Artist Info (AMG)
343 comments for this song:
Log in above to post your comment
(Roosendaal; The Netherlands)
Posted: May 15, 2013 - 03:11
Ideal song for in the morning.
Posted: May 02, 2013 - 21:56
Me three. TerryS wrote:
Yep, says Deborah Harold to me too.
(California, baby)
Posted: May 02, 2013 - 21:55
Great tune
Posted: Apr 30, 2013 - 12:39
Heart of glass - yes, but this even more?
(Another SW)
Posted: Apr 26, 2013 - 19:28
skyguy wrote:
I always think this is Blondie when it first comes on.
Yep, says Deborah Harold to me too.
(Back in Ohiya, for now ...)
Posted: Apr 01, 2013 - 18:38
I ♥ synths
Posted: Mar 26, 2013 - 07:43
stunix wrote:
I hate that I love this. Even my cleaner said its 5h1t!
Ha ha, I was just thinking the same thing!
(Narrowboat nr Caen Locks)
Posted: Mar 26, 2013 - 07:42
I hate that I love this. Even my cleaner said its 5h1t!
Posted: Mar 26, 2013 - 07:42
I must counter-program the haters by saying that this is a fabulous song through and through
(Kansas City)
Posted: Mar 26, 2013 - 07:40
FM Radio noise
Posted: Mar 20, 2013 - 15:57
Welcome to yet another episode of Sesame Street singalong Mousekateers!
White noise.
(rockpommel´s land...near the netherlands)
Posted: Mar 17, 2013 - 04:36
...*argh*......and "PSD" doesn´t work....sry,RP i have to leave now......
Posted: Mar 05, 2013 - 12:08
I first heard this song in a dead shopping mall.
Posted: Mar 01, 2013 - 07:46
I sense a theme, first Rush now Arcade Fire, Life in the Canadian suburbs....
(Beautiful Bonita Springs in Sunny Florida)
Posted: Mar 01, 2013 - 07:42
skyguy wrote:
I always think this is Blondie when it first comes on.
(Chuckanut sandstone)
Posted: Feb 26, 2013 - 22:46
A song about intelligent land-use planning? I love it!
Posted: Feb 17, 2013 - 06:21
Blondie meets The knife. Nice.
Posted: Jan 26, 2013 - 15:22
I always think this is Blondie when it first comes on.
Posted: Jan 22, 2013 - 13:24
Lots of smoke - from Aracde Fire!
(The business end of Bloomberg's education machine.)
Posted: Dec 28, 2012 - 16:11
1wolfy wrote:
Just like ABBA
Another great band. I'm sure The Fire would approve.
Posted: Dec 28, 2012 - 16:06
Nice segway, Bill....Subdivisions by Rush to this.....
(Zurich, Switzerland)
Posted: Dec 13, 2012 - 02:52
After listening to this song on RP I recently bought the entire album, which is as good as they say. Thank you, RP-Bill, for pointing me towards just another great band.
(West Hartford)
Posted: Dec 09, 2012 - 07:56
So many RP listeners act like pointing out the possible influences of a band somehow dismisses whatever creativity is happening.
I don't get it.
Influences are inevitable- and if it sounds like something 20 years ago, but isn't as cool as what you're mind is relating it to.... oh well.
My guess is most of these types of comments come from people who don't play music and don't understand that there's only so much you can do in the field of "popular music" and most likely couldn't write a song half as cool as this.
From HIgh Fidelity:
: I don't have that record... I'll buy it for forty.
: Sold.
: Now why would you sell it to me and not to him?
: Because you're not a geek, Louis.
: You guys are snobs.
: No, we're not.
: Yeah, seriously, you're totally elitist. You feel like the unappreciated scholars, so you shit onto people who know lesser than you.
: No!
: Which is everybody...
: Yeah...
: That's so sad.
Posted: Dec 05, 2012 - 12:06
So many RP listeners act like pointing out the possible influences of a band somehow dismisses whatever creativity is happening.
I don't get it.
Influences are inevitable- and if it sounds like something 20 years ago, but isn't as cool as what you're mind is relating it to.... oh well.
My guess is most of these types of comments come from people who don't play music and don't understand that there's only so much you can do in the field of "popular music" and most likely couldn't write a song half as cool as this.
Posted: Dec 05, 2012 - 11:51
shellbella wrote:
I just don't get what the big deal is about this band.... bubble gum to me..
What type of bubble gum are you familiar with? This (Arcade Fire) flavor must have some cayenne in it.
(Mission Viejo California)
Posted: Dec 05, 2012 - 11:49
Just like ABBA....like it
(..in the general vicinity..)
Posted: Nov 24, 2012 - 22:41
suesblues wrote:
'they heard me singing and they told me to stop
quit these pretentious things and just punch the clock
these days my life I feel it has no purpose
but late at night my feelings swim to the surface....
I need the darkness someone please cut the lights'
a song for anyone creative who's tried to conform...
great song, great lyrics, great hair (lead singer
..coolness!..thx for posting this..
Posted: Nov 22, 2012 - 10:30
Byronape wrote:
I think a lot of the issues you and I have are based more on world outlook than practical differences.
Intelligently planned communities, built with an eye for sustainability, low environmental impact, and common sense are not a bad thing at all. I don't have anything wrong with subdivisions for housing (at least not on moral grounds, it's just not to my taste), but the kind of sprawl that bothers me is the commercial sprawl that leaves urban decline in it's wake.
Let me give you a prime example of it from where I live. About 7 or 8 miles out of town, a brand new, shiney, outdoor shopping center was opened. It was skewed to a slightly upscale buying audience in order to draw money out of the city and the surrounding areas. It has proven to be a successful venture for most of the stores located there and it's pretty much the shopping destination for anyone able to drive out there. It was located in what used to be farm land owned by a couple of families. They got their check, the developers got their check, and the businesses there get their checks. Everyone is happy.
Except for the people that lived near and within walking distance of a closer mall. Granted the mall was dated, but if the city had given the mall ownership even a fraction of the support given to the new shopping center, they would have been able to refresh it and keep it up to date. Instead, the stores inside withered as the buying population went to the new stores. People lost their livelihoods and life savings trying to save stores, but as the anchor stores left, so too did the majority of the shoppers. All that were left was the poor, those who could not afford the merchandise at the shopping center, or didn't have reliable transportation to get there. As stores left the area, they took jobs with them. As the jobs left the area, people could not longer afford to shop for anything, and the remaining shops closed down.
Now, instead of a mall, there is one giant, weed choked slab of concrete. The people in the immediate area are suffering more because what few employers they did have left. Now, crime is higher in those areas, the roads are deteriorating to be nearly unusable so that those that can find work, have to destroy their cars to get there.
Before you say "them's the breaks", consider both the economic and social benefits of just refreshing and renovating what was already there. The land would still be productive farmlands, thus contributing to the local economy. There would be more jobs in the area (granted, not great jobs, but everyone has to start out somewhere and it always beats no job). The area wouldn't be as dangerous for the residents. The roads would not have crumbled so those that work would be able to make their cars last longer.
Personally, I'd rather not have to drive further than necessary to spend more for something that I could have gotten closer for cheaper.
As for any moral superiority of a high rise over a split level ranch, you are right (edit... I hate split level houses. When I worked as a cable installer I had to go into several and they are a nightmare to wire and I think they waste a lot of space). Personally, I'd rather have a nice house on a wooded countryish lot than an apartment in a high rise somewhere. I don't begrudge anyone the right to live where ever they want. The issue I do have is the incessant need that people have for bigger and better things at the cost of common sense, logic, and sustainability. If you want a house away from the city, fine. But does your house really need to have 5 bedrooms and a bathroom every 17 feet?
The issue isn't a policy one, or even a social one. My issues are all cultural. I disagree with the throw away culture just as much as I disagree with the culture of ethnocentrism where people will stare in the face of reality and still declare that the American way of doing ANYTHING is better, simply because it's the American way.
Edit: RDO, next time I'm in DC, I want to take you out for a beer or 12. I've had more fun debating you on this forum than I have arguing with anyone. Most of the people with differing views are about as inarticulate as a turnip and always end up with an argument that tells me they feel that way because Glenn Beck told them to.
Believe me, the last thing you want is European style bureaucracy. It's just hell. Yes, Europe built the most beautiful and lasting cities the world has ever known, but that was 500-2000 years ago. When they were being built, rest assured they were denounced by cultural elites as "sprawl" or something similar. We cannot build these types of cities, as much as we'd love to, unless you want a Kim Jong Il to seize power and force it down our throats. I live in a high-rise near the heart of the city, I always have, I personally cannot physically live in the suburbs because I get severely depressed (I tried a stint). I just cannot do it. I need either Walden style isolation, or complete immersion in the urban jungle. There is no in between for me. Why is it so hard for people, like you, to accept that others are happy? Most people love the suburbs. To each his own. And don't give me that BS about the poor neighborhoods. We've had enough of this talk. I am all for social programs to help poor folks, but don't you dare blame it on the things America does well. I am so sick of that. It's not true. Love your posts as always. Keep it up. You make excellent points.
Posted: Nov 20, 2012 - 20:15
djblitz wrote:
2.8% of RP listeners think so......which says more about you and your lack of taste than anything else.
I like this tune, but your comment is just rude.
(Sydney, Australia)
Posted: Nov 15, 2012 - 05:04
'they heard me singing and they told me to stop
quit these pretentious things and just punch the clock
these days my life I feel it has no purpose
but late at night my feelings swim to the surface....
I need the darkness someone please cut the lights'
a song for anyone creative who's tried to conform...
great song, great lyrics, great hair (lead singer


text:
Or sign in using Facebook Connect
Or sign up using Facebook Connect
Level 1 Traveler
1 tour
1 country
Following 1 person
See all
Followed by 1 person
Find Members to Follow
benny_boi is now following Karen (Karen Battaliou)
benny_boi (benny_boi)
Uploaded 3 months ago
View benny_boi's gallery
Visas? Money? Where to go? Chat to us about travel.


text:
are you sure of this post… could you provide the links?Of course I could!
Please do so.. i am waiting eagerly for knowing the links man!!!!!! awe!!!!1
If you want the links, I can provide them here, because it is all the TRUTH and I have evidence of it all! All of it is carefully researched!


text:
Sign In
Want to post? It's easy to register and you can remain as anonymous as you want!
welcome to the boards!
The Scary Mommy Community is a place for moms (and non-moms, too!) to get honest feedback, amazing support, sage advice, and make the very best of friends. Join today and discover thousands of women just like you...From the Confessional
My 18 yo brother got engaged and I can't stand his gf or her crazy ass family. I don't want her to be anywhere near my kids. She drives me bananas
Rethinking everything we have built together. I deserve better than someone who doesn't even care about me.
No matter how hard I will myself to to care, I really could care less about being an in your face kind of mom... I hate sitting on the floor playing it bores me...
I'm super paranoid when H goes away for his work trip. We've only spent two night apart since we've lived together, over 5 years ago.


text:
John Ericsson Middle School 126
Marcos Bausch, PRINCIPAL
424 LEONARD STREET, BROOKLYN, NY 11222Phone: 718-782-2527
School Name, Number, or Address
Advanced Search
Contact Us by Phone
To contact the PRINCIPAL, Marcos Bausch, call the school at: 718-782-2527
To contact your school's Parent Coordinator, Phyllis Zawrotniak, call 347-563-5359 for all parent issues including questions about your child, general inquiries, workshops, parent engagements and parent associations.
To contact the PTA President, (Information provided by school), call: (Information provided by school)
To contact the Community District Superintendent, WINNICKI, ALICJA, call (718) 935-3698
Contact Us by Email
Click here to provide information updates, feedback about this website or general questions about this school. Contact the school directly for questions or issues related to your child(ren) or if you need an immediate response.