Daily Archives

Articles indexed Monday December 27 2010

Page 27/30 | < Previous Page | 23 24 25 26 27 28 29 30  | Next Page >

  • PASS Summit Feedback

    - by Rob Farley
    PASS Feedback came in last week. I also saw my dentist for some fillings... At the PASS Summit this year, I delivered a couple of regular sessions and a Lightning Talk. People told me they enjoyed it, but when the rankings came out, they showed that I didn’t score particularly well. Brent Ozar was keen to discuss it with me. Brent: PASS speaker feedback is out. You did two sessions and a Lightning Talk. How did you go? Rob: Not so well actually, thanks for asking. Brent: Ha! Sorry. Of course you know that's why I wanted to discuss this with you. I was in one of your sessions at SQLBits in the UK a month before PASS, and I thought you rocked. You've got a really good and distinctive delivery style.  Then I noticed your talks were ranked in the bottom quarter of the Summit ratings and wanted to discuss it. Rob: Yeah, I know. You did ask me if we could do this...  I should explain – my presentation style is not the stereotypical IT conference one. I throw in jokes, and try to engage the audience thoroughly. I find many talks amazingly dry, and I guess I try to buck that trend. I also run training courses, and find that I get a lot of feedback from people thanking me for keeping things interesting. That said, I also get feedback criticising me for my style, and that’s basically what’s happened here. For the rest of this discussion, let’s focus on my talk about the Incredible Shrinking Execution Plan, which I considered to be my main talk. Brent: I thought that session title was the very best one at the entire Summit, and I had it on my recommended sessions list.  In four words, you managed to sum up the topic and your sense of humor.  I read that and immediately thought, "People need to be in this session," and then it didn't score well.  Tell me about your scores. Rob: The questions on the feedback form covered the usefulness of the information, the speaker’s presentation skills, their knowledge of the subject, how well the session was described, the amount of time allocated, and the quality of the presentation materials. Brent: Presentation materials? But you don’t do slides.  Did they rate your thong? Rob: No-one saw my flip-flops in this talk, Brent. I created a script in Management Studio, and published that afterwards, but I think people will have scored that question based on the lack of slides. I wasn’t expecting to do particularly well on that one. That was the only section that didn’t have 5/5 as the most popular score. Brent: See, that sucks, because cookbook-style scripts are often some of my favorites.  Adam Machanic's Service Broker workbench series helped me immensely when I was prepping for the MCM.  As an attendee, I'd rather have a commented script than a slide deck.  So how did you rank so low? Rob: When I look at the scores that you got (based on your blog post), you got very few scores below 3 – people that felt strong enough about your talk to post a negative score. In my scores, between 5% and 10% were below 3 (except on the question about whether I knew my stuff – I guess I came as knowledgeable). Brent: Wow – so quite a few people really didn’t like your talk then? Rob: Yeah. Mind you, based on the comments, some people really loved it. I’d like to think that there would be a certain portion of the room who may have rated the talk as one of the best of the conference. Some of my comments included “amazing!”, “Best presentation so far!”, “Wow, best session yet”, “fantastic” and “Outstanding!”. I think lots of talks can be “Great”, but not so many talks can be “Outstanding” without the word losing its meaning. One wrote “Pretty amazing presentation, considering it was completely extemporaneous.” Brent: Extemporaneous, eh? Rob: Yeah. I guess they don’t realise how much preparation goes into coming across as unprepared. In many ways it’s much easier to give a written speech than to deliver a presentation without slides as a prompt. Brent: That delivery style, the really relaxed, casual, college-professor approach was one of the things I really liked about your presentation at SQLbits.  As somebody who presents a lot, I "get" it - I know how hard it is to come off as relaxed and comfortable with your own material.  It's like improv done by jazz players and comedians - if you've never tried it, you don't realize how hard it is.  People also don't realize how hard it is to make a tough subject fun. Rob: Yeah well... There will be people writing comments on this post that say I wasn't trying to make the subject fun, and that I was making it all about me. Sometimes the style works, sometimes it doesn't. Most of the comments mentioned the fact that I tell jokes, some in a nice way, but some not so much (and it wasn't just a PASS thing - that's the mix of feedback I generally get). One comment at PASS was: “great stand up comedian - not what I'm looking for at pass”, and there were certainly a few that said “too many jokes”. I’m not trying to do stand-up – jokes are my way of engaging with the audience while I demonstrate some of the amazing things that the Query Optimizer can do if you write your queries the right way. Some people didn’t think it was technical enough, but I’ve also had some people tell me that the concepts I’m explaining are deep and profound. Brent: To me, that's a hallmark of a great explanation - when someone says, "But of course it has to work that way - how could it work any other way?  It seems so simple and logical."  Well, sure it does when it's explained correctly, but now pick up any number of thick SQL Server books and try to understand the Redundant Joins concept.  I guarantee it'll take more than 45 minutes. Rob: Some people in my audiences realise that, but definitely not everyone. There's only so much you can tell someone that something is profound. Generally it's something that they either have an epiphany on or not. I like to lull my audience into knowing what's going on, and do something that surprises them. Gain their trust, build a rapport, and then show them the deeper truth of what just happened. Brent: So you've learned your lesson about presentation scores, right?  From here on out, you're going to be dry, humorless, and all your presentations will consist of you reading bullet points off the screen. Rob: No Brent, I’m not. I'm also not going to suggest that most presentations at PASS are like that. No-one tries to present like that. There's a big space to occupy between what "dry and humourless" and me. My difference is to focus on the relationship I have with the crowd, rather than focussing on delivering the perfect session. I want to see people smiling and know they're relaxed. I think most presenters focus on the material, which is completely reasonable and safe. I remember once hearing someone talking about product creation. They talked about mediocrity. They said that one of the worst things that people can ever say about your product is that it’s “good”. What you want is for 10% of the world to love it enough to want to buy it. If 10% the world gave me a dollar, I’d have more money than I could ever use (assuming it wasn’t the SAME dollar they were giving me I guess). Brent: It's the Raving Fans theory.  It's better to have a small number of raving customers than a large number of almost-but-not-really customers who don't care that much about your product or service.  I know exactly how you feel - when I got survey feedback from my Quest video presentation when I was dressed up in a Richard Simmons costume, some of the attendees said I was unprofessional and distracting.  Some of the attendees couldn't get enough and Photoshopped all kinds of stuff into the screen captures.  On a whole, I probably didn't score that well, and I'm fine with that.  It sucks to look at the scores though - do those lower scores bother you? Rob: Of course they do. It hurts deeply. I open myself up and give presentations in a very personal way. All presenters do that, and we all feel the pain of negative feedback. I hate coming 146th & 162nd out of 185, but have to acknowledge that many sessions did worse still. Plus, once I feel the wounds have healed, I’ll be able to remember that there are people in the world that rave about my presentation style, and figure that people will hopefully talk about me. One day maybe those people that don’t like my presentation style will stay away and I might be able to score better. You don’t pay to hear country music if you prefer western... Lots of people find chili too spicy, but it’s still a popular food. Brent: But don’t you want to appeal to everyone? Rob: I do, but I don’t want to be lukewarm as in Revelation 3:16. I’d rather disgust and be discussed. Well, maybe not ‘disgust’, but I don’t want to conform. Conformity just isn’t the same any more. I’m not sure I’ve ever been one to do that. I try not to offend, but definitely like to be different. Brent: Count me among your raving fans, sir.  Where can we see you next? Rob: Considering I live in Adelaide in Australia, I’m not about to appear at anyone’s local SQL Saturday. I’m still trying to plan which events I’ll get to in 2011. I’ve submitted abstracts for TechEd North America, but won’t hold my breath. I’m also considering the SQLBits conferences in the UK in April, PASS in October, and I’m sure I’ll do some LiveMeeting presentations for user groups. Online, people download some of my recent SQLBits presentations at http://bit.ly/RFSarg and http://bit.ly/Simplification though. And they can download a 5-minute MP3 of my Lightning Talk at http://www.lobsterpot.com.au/files/Collation.mp3, in which I try to explain the idea behind collation, using thongs as an example. Brent: I was in the audience for http://bit.ly/RFSarg. That was a great presentation. Rob: Thanks, Brent. Now where’s my dollar?

    Read the article

  • What software do you use to help plan your team work, and why?

    - by Alex Feinman
    Planning is very difficult. We are not naturally good at estimating our own future, and many cognitive biases exacerbate the problem. Group planning is even harder. Incomplete information, inconsistent views of a situation, and communication problems compound the difficulty. Agile methods provide one framework for organizing group planning--making planning visible to everyone (user stories), breaking it into smaller chunks (sprints), and providing retrospective analysis so you get better at planning. But finding good tools to support these practices is proving tricky. What software tools do you use to achieve these goals? Why are you using that tool? What successes have you had with a particular tool?

    Read the article

  • Disk utility running for a long time

    - by Nik
    I had a spare, old external usb hard disk which stopped working long time back due to improper removal of disk. I tried fixing it in windows (when I did not have ubuntu yet), however I couldn't fix it. So I tried formatting the disk and creating a new partition using the disk utility in ubuntu. However it seems to keep running without any indication of the progress or whatsoever. I have no idea what is happening. I have attached a screenshot below to show what I mean. As you can from the screenshot above it seems to be working on it but no indication on the progress or what it is doing. Any attempt to exit it or do any other task like safe removal or format partition leads to the the following dialog box. What should I do? Wait or restart the computer..???

    Read the article

  • Cannot install build essential from the CD?

    - by munir
    After a fresh installation of Ubuntu 10.10 I tried to install build-essential from the Ubuntu installation CD. I put the cd in the cdrom and in the software repositories i checked the box install from cd(Ubuntu 10.10 release Maverick Meerkat). Then I reloaded the software repositories. The synaptic manager then tried to download some repository related files but failed to do so as i didn't have internet connection. Then I open a terminal and wrote sudo apt-get install build-essential. It prompted me if I want to install build essential y/N. I typed y but the terminal showed some errors and was not installed. I also tried to add the CD in the software repositories. I clicked add and it prompted me to insert a CD while the CD was still inside the cdrom. I clicked "ok" then and it showed it could not find any cd. What is wrong?

    Read the article

  • Mod Rewirte Question.

    - by delimit
    I cant seem to get Example 1 to turn into Example 2 using mod rewrite. Can someone help me out? Example 1 http://www.example.com/info/index.php?uid=123 Example 2 http://www.example.com/123 Mod rewrite code. Options +FollowSymLinks Options -Indexes RewriteEngine on RewriteBase /info RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/info/$1 [R=301,L] RewriteRule ^([^/]*)$ /info/index.php?uid=$1 [L]

    Read the article

  • DateTimeAxis - set Label to display Date + Time

    - by Jay
    Hi, Is there a way in flex 3 chart component to display both the date and time using horizontal DateTimeAxis? Currently the DateTimeAxis element has an attribute dataunits which allows to set the value to any of "milliseconds|seconds|minutes|hours|days|weeks|months|years" but I want to display the label as "2009/09/15 06:00:00" which includes the day and the time too. Here is the sample that i'm using [Bindable] public var deck:ArrayCollection = new ArrayCollection([ {date:"2009-09-15 06:00:00", close:42.71}, {date:"2009-09-16 06:15:00", close:42.99} ]); public function myParseFunction(s:String):Date { var sDate = s.substring(0,s.indexOf(" ")); var sTime = s.substring(s.indexOf(" ")); var aDate = sDate.split("-"); var aTime = sTime.split(":"); return new Date(aDate[0],(aDate[1]*1-1),aDate[2],aTime[0],aTime[1],aTime[2],0); } ]] Thanks in advance.

    Read the article

  • PHP coding - A class for each view or one class to rule them all?

    - by Kyle
    I am starting my first "programming" project in PHP making some sort of web application that give the linux program, Motion, a decent web interface. Anyways, I was curious as to how when real applications are programmed, do y'all go for a class for each view or one single class for the application altogether? I know this is more of a preference thing, I was just curious as to how it happens in real software.

    Read the article

  • twisted deferred/callbacks and asynchronous execution

    - by NetSkay
    hey guys, quick question about twisted and python... im trying to figure out how can i make my code more asynchronous using twisted and ive come to sort of a dead end, if a function of mine returns a deferred object, then i add a list of callbacks, the first callback will be called after the deferred function provides some result through deferred_obj.callback, then, in the chain of callbacks, the first callback will do something with the data and call the second callback and etc. however chained callbacks will not be considered asynchronous because they're chained and the event loop will keep firing each one of them concurrently until there is no more, right? however, if i have a deferred object, and i attach as its callback the deferred_obj.callback as in d.addCallback(deferred_obj.callback) then this will be considered asynchronous, because the deferred_obj is waiting for the data, and then the method that will pass the data is waiting on data as well, however once i d.callback 'd' object processes the data then it call deferred_obj.callback however since this object is deferred, unlike the case of chained callbacks, it will execute asynchronously... correct? meaning chained callbacks are NOT asynchronous while chained deferreds are, correct? thank you PS: assuming all of my code is non-blocking

    Read the article

  • Website badge system

    - by linkyndy
    I am currently working on a widget-based website, built entirely on user socialization. Since a reputation system pays off for attracting users, I decided to implement one of these. Now, I would like to hear some solutions on how should this be implemented the right way (take, for example, Foursquare's badge system). Basically, I need to be able to do the following: have a badges table, where I can add, edit and delete badges; be able to enable and disable a badge; be able to introduce a new badge, but without writing new code - simply give some parameters to the add badge form regarding what should be followed in order for a user to receive a badge; be able to give badges in real time - meaning that whenever a user accomplishes whatever it needs to receive a badge, the system should know immediately to give the badge to that user; also, the system should not be overloaded with "badge listeners" - I believe interrogating each user request with every badge requirements is time consuming; These being said, I would like to hear your opinions on how to implement the right way a badge system (logic, database schema, methods etc.) Thank you very much!

    Read the article

  • Unable to retrieve data, mysql php pdo

    - by Kyle Hudson
    Hi, I have an issue, i cannot get any results from mysql on a production box but can on a development box, we use PHP 5.3 with MySQL (pdo). $sd = $this->dbh->quote($sd); $si_sql = "SELECT COUNT(*) FROM tbl_wl_data WHERE (site_domain = $sd OR siteDomainMasked = $sd);"; if($this->dbh->query($si_sql)->rowCount() > 0) { //gets to here, just doesnt get through the loop $sql = "SELECT pk_aid, site_name, site_css, site_img_sw, supportPhone FROM tbl_wl_data WHERE (site_domain = $sd OR siteDomainMasked = $sd);"; foreach($this->dbh->query($sql) as $wlsd) { //-- fails here if($wlsd['wl_status'] != '1') { require "_domainDisabled.php"; exit; } $this->pk_aid = $wlsd['pk_aid']; $this->siteTitle = $wlsd['site_name']; $this->siteCSS = $wlsd['site_css']; $this->siteImage = $wlsd['site_img_sw']; $this->siteSupportPhone = $wlsd['supportPhone']; } } else { throw new ERR_SITE_NOT_LINKED; } It just doesnt seem to get into the loopk, i ran the query in navicat and it returns the data. Really confused :S

    Read the article

  • Postgresql full text search part of words

    - by Grezly
    Is postresql capable of doing a full text search, based on 'half' a word? For example i'm trying to seach foor tree, but i tell postgres to search for 'tr'. I can't find such a solution that is capable of doing this. Currently i'm using this select * from test, to_tsquery('tree') as q where vectors @@ q ; But i like to do something like this: select * from test, to_tsquery('tr%') as q where vectors @@ q ;

    Read the article

  • CoffeeScript on Windows?

    - by Nick Perkins
    How can I try CoffeeScript on Windows? The installation instructions are only for *nix: http://jashkenas.github.com/coffee-script/#installation EDIT: I don't think I need node.js -- I am just writing javascript for web pages, (using some jQuery, etc)...So all I really want is simple way to write CoffeeScript and "compile" it down to JavaScript. Isn't there a Ruby program that would do it? Or even better, a windows exe? (i dont use ASP.NET either...i use Python/Django) FINAL EDIT: Thanks for the help -- In the end I installed VirtualBox and created a virtual Linux machine which I now use to program coffeescript with node.js. (It was surprisingly easy to start using VirtualBox -- easier than doing the Cygwin thing). I run jEdit (for which you can get a CoffeeScript syntax highlighter) and I put the corresponding js file side-by-side with the coffeescript file. When I compile the coffeescript to js, the editor automatically re-loads the new javascript, which allows me to check that it has compiled the way I expect (which is a good thing while learning the coffeescript syntax).

    Read the article

  • Targeting all subclassed CCSprites (cocos2d)

    - by Joethemonkey101
    I'm working on a method to end the level, but to do so, I have to see that all of the enemy character have been killed. If my enemies are CCSprites, how do I make a method that detects if all of them are dead? I'm tracking their health with an int called enemyHp. For example, this is an if statement I made to remove the enemy if (enemy.enemyHp <= 0) { To recap - I want to make a method that detects when all enemies have been killed. Thanks

    Read the article

  • C# adding list into list

    - by gencay
    I have a DocumentList.c as implemented below. And when I try to add a list into the instance of DocumentList object it adds but the others be the same class DocumentList { public static List wordList; public static string type; public static string path; public static double cos; public static double dice; public static double jaccard; //public static string title; public DocumentList(List wordListt, string typee, string pathh, double sm11, double sm22, double sm33) { type = typee; wordList = wordListt; path = pathh; cos = sm11; dice = sm22; jaccard = sm33; } } in main c#code fragment public partial class Window1 : System.Windows.Window { static private List documentList = new List(); ... in a method I use as below. DocumentList dt = new DocumentList(para1, para2, para3, para4, para5, para6); documentList.Add(dt); Now, When i add the first list it is ok it seems 1 item in documentList, but for the second one I get a list with 2 items but both the same.. I mean I cannot keep previous list item..

    Read the article

  • Z-index bug with IE6.. can't seem to figure this one out

    - by Trip
    I am working on this gorgeous header here at : http://kayaskitchenbelmar.com/test/header.html Unfortunately, in IE6, the drop downs that come off of the Print and View buttons collapse on to a new line. This is because of the common z-index bug. I tried resolving this by making the parent div have a higher z-index and position relative with its child a lower z-index and position absolute, but that didn't seem to work. Possibly I'm missing something obvious? Thanks so much

    Read the article

  • What is the point of padding?

    - by ktm5124
    In particular, I'm reading into the Mach-O binary file format for Intel 32 on OS X. After the FAT header there is a whole bunch of padding before the offset of the first archive. What is the point of all this padding? To be more specific, there is upwards of 4000 bytes of padding between the FAT header and the first archive (in particular, the mach_header). Why include all these extra bytes?! Is OS X fond of adding 4 MB to all their universal binaries?

    Read the article

  • SATA hard disk for laptop on Desktop PC

    - by Lawliet
    I know that this forum is for programming-related questions only, but I'm having this dilemma so here I go. Can I connect a laptop SATA hard disk to Desktop PC? Do I have to use some adapters or I can just plug in SATA power connector and SATA data cable like my Desktop hard disk is connected? I noticed that both laptop and desktop SATA disks use same connectors, but I'm afraid that I might fry my laptop hard disk because the SATA connector has both 12V and 5V voltage (given the fact that laptop hard disks has input voltage of 5V) Thanks in advance

    Read the article

  • C++ print out a binary search tree

    - by starcorn
    Hello, Got nothing better to do this Christmas holiday, so I decided to try out making a binary search tree. I'm stuck with the print function. How should the logic behind it work? Since the tree is already inserting it in a somewhat sorted order, and I want to print the tree from smallest values to the biggest. So I need to travel to the furthest left branch of the tree to print the first value. Right, so after that how do I remember the way back up, do I need to save the previous node? A search in wikipedia gave me an solution which they used stack. And other solutions I couldn't quite understand how they've made it, so I'm asking here instead hoping someone can enlight me. I also wonder my insert function is OK. I've seen other's solution being smaller. void treenode::insert(int i) { if(root == 0) { cout << "root" << endl; root = new node(i,root); } else { node* travel = root; node* prev; while(travel) { if(travel->value > i) { cout << "travel left" << endl; prev = travel; travel = travel->left; } else { cout << "travel right" << endl; prev = travel; travel = travel->right; } } //insert if(prev->value > i) { cout << "left" << endl; prev->left = new node(i); } else { cout << "right" << endl; prev->right = new node(i); } } } void treenode::print() { node* travel = root; while(travel) { cout << travel->value << endl; travel = travel->left; } }

    Read the article

  • undefined method `events' for #<ActiveRecord::Relation:0x4177518> -rails 3.0.3

    - by brg
    I am having this unexplained NoMethodError with undefined method `events' for #. I don't know why since my model association are well defined and the event table has the foreign keys for the user table. I tried using this fix but it failed: Rails 3 ActiveRecord::Relation random associations behavior event.rb class Event < ActiveRecord::Base belongs_to :user attr_accessible :event_name, :Starts_at, :finish, :tracks end user.rb class User < ActiveRecord::Base has_many :events, :dependent = :destroy attr_accessible :name, :event_attributes accepts_nested_attributes_for :events, :allow_destroy = true end schema.rb ActiveRecord::Schema.define(:version = 20101201180355) do create_table "events", :force = true do |t| t.string "event_name" t.string "tracks" t.datetime "starts_at" t.datetime "finish" t.datetime "created_at" t.datetime "updated_at" t.integer "user_id" end end error message NoMethodError in Users#index undefined method `events' for # Extracted source (around line #10): 7: <%= sortable "Tracks" % 8: 10: <% @users.events.each do |event| % 11: <% debugger % 12: 13: <%= event.starts_at % Trace of template inclusion: app/views/users/index.html.erb Rails.root: C:/rails_project1/events_manager Application Trace | Framework Trace | Full Trace app/views/users/_event_user.html.erb:10:in _app_views_users__event_user_html_erb__412443848_34308540_1390678' app/views/users/index.html.erb:7:in_app_views_users_index_html_erb___603337143_34316016_0'

    Read the article

  • Open + Save .exe file in notepad makes it corrupted

    - by Jacob Kofoed
    Hi, I just published this simple console application that is supposed to show a textbox with the value of a setting called "userID" with value 1001. This works like a charm. Now what I need is to change this value outside the editor, from notepad etc. When I open the application a lot in there is non-sence (& o! -å Þþþ,o" Ü+) etc. but with a quick (ctrl + F) I found the value 1001, and changed this to some other integer. I ran the application again, and it failed, didn't even give any userful error-message. At a point I tried just opening a newly published non-corrupted version of the application, didn't change anything, then saved from notepad, and it were also corrupted. It seems like notepad can't open some characters or something. Do I need to publish the application in some specific text-unicode language or something? Help much appreciated :) I know it sounds like a stupid application, but it is just a test of concept :) I use vb.net for this

    Read the article

  • iOS Development: Can I store an array of integers in a Core Data object without creating a new table to represent the array?

    - by BeachRunnerJoe
    Hello. I'm using Core Data and I'm trying to figure out the simplest way to store an array of integers in one of my Core Data entities. Currently, my entities contain various arrays of objects that are more complex than a single number, so it makes sense to represent those arrays as tables in my DB and attach them using relationships. If I want to store a simple array of integers, do I need to create a new table with a single column and attach it using a one-to-many relationship? Or is there a more simple way? Thanks in advance for your wisdom!

    Read the article

  • Request for member Name in something not a structure or Union

    - by Ashutosh
    Hey Folks, I am trying to Call the webservices in my app and while checking it in console it's showing the number of objects. (as i am using the Mutable array) and then while trying to display the name of the objects (here it's location) it's giving me an error in this line for (SDZArrayOfLocationWithLatestGrades* location in a) { NSLog(@" - %@", location.Name); // error here and a is the mutable array } PLease help me with this and Happy New Year to All!!!!!! Thanks,

    Read the article

  • Oracle database link

    - by Sunit
    I'm currently using Windows Authentication with 2 Oracle servers - SP3DSMP1 & SP3DSMP4. I created a database link on SMP1 to connect to SMP4 as: SQL create public database link LINK_SMP4 2 connect to CURRENT_USER 3 using 'SP3DSMP4'; Database link created. However when I try to do a query, I get the error: ERROR at line 1: ORA-01017: invalid username/password; logon denied Any ideas what might be wrong here? thanks Sunit

    Read the article

  • shorewall masquerading from tun0 to ppp0

    - by damir
    First interface is ppp0 (pptp vpn) Second inteface is tun0 (openvpn) Third interface eth0 (default gw interface) Openvpn is set to change default route on client for all packets to go through tun0 vpn, that part is working ok. I would like to make all packets from tun0 go to ppp0 and get out from that interface (MASQ) but somehow they always end up on eth0 (default gw interface) /etc/shorewall/masq ppp0 tun0 doesn't seem to work

    Read the article

< Previous Page | 23 24 25 26 27 28 29 30  | Next Page >