Search Results

Search found 22807 results on 913 pages for 'andy main'.

Page 556/913 | < Previous Page | 552 553 554 555 556 557 558 559 560 561 562 563  | Next Page >

  • C++ Why am I unable to use an enum declared globally outside of the class it was declared in?

    - by VGambit
    Right now, my project has two classes and a main. Since the two classes inherit from each other, they are both using forward declarations. In the first object, right underneath the #include statement, I initialize two enums, before the class definition. I can use both enums just fine inside that class. However, if I try to use those enums in the other class, which inherits from the first one, I get an error saying the enum has not been declared. If I try to redefine the enum in the second class, I get a redefinition error. I have even tried using a trick I just read about, and putting each enum in its own namespace; that didn't change anything.

    Read the article

  • C++ memory management of reference types

    - by Russel
    Hello, I'm still a fairly novice programmer and I have a question about c++ memory management with refence types. First of all, my understanding of reference types: A pointer is put on the stack and the actual data that the pointer points to is created and placed on the heap. Standard arrays and user defined classes are refence types. Is this correct? Second, my main question is do c and c++'s memory management mechanisms (malloc, free and new, delete) always handle this properly and free the memory that a class or array is pointing to? Does everything still work if those pointers get reassigned somehow to other objects of the same size/type on the heap? What if a class has a pointer member that points to another object? I am assuming that delete/freeing the class object doesn't free what it's member pointer points to, is that correct? Thanks all! -R

    Read the article

  • What should I do to practice?

    - by simion
    I start a year long industrial placement in September where i will be coding in Java predominantly. I am going to use the summer to brush up on my Java as in year one of the degree Java was the main language taught for OOP modules. However this year i have had no Java exposure except for an algorithms module, which was one of eight, so as you can see i am probably getting really rusty!. What i wanted to know is, how does the "real world" java programming differ from university coding and what do you suggest i brush up on that would be different to my normal workings. As a start I definitely need to get familiar with a professional IDE like NetBeans, opposed to having used BlueJ throughout but more specifically what coding practices should I get more familiar with. I appreciate they wont expect me to be a qualified full developer and will give me time, but I would like to hit the ground running as it were, with me having full hopes to secure a permanent position after I finish my degree.

    Read the article

  • my window's handle is unused and cannot be evaluated

    - by numerical25
    I am trying to encapsulate my Win32 application into a class. My problem occurs when trying to initiate my primary window for the application below is my declaration and implementation... I notice the issue within my class method InitInstance(); declaration #pragma once #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 class RenderEngine { protected: int m_width; int m_height; ATOM RegisterEngineClass(); public: static HINSTANCE m_hInst; HWND m_hWnd; int m_nCmdShow; TCHAR m_szTitle[MAX_LOADSTRING]; // The title bar text TCHAR m_szWindowClass[MAX_LOADSTRING]; // the main window class name bool InitWindow(); bool InitDirectX(); bool InitInstance(); //static functions static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); int Run(); }; implementation #include "stdafx.h" #include "RenderEngine.h" HINSTANCE RenderEngine::m_hInst = NULL; bool RenderEngine::InitWindow() { RenderEngine::m_hInst = NULL; // Initialize global strings LoadString(m_hInst, IDS_APP_TITLE, m_szTitle, MAX_LOADSTRING); LoadString(m_hInst, IDC_RENDERENGINE, m_szWindowClass, MAX_LOADSTRING); if(!RegisterEngineClass()) { return false; } if(!InitInstance()) { return false; } return true; } ATOM RenderEngine::RegisterEngineClass() { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = RenderEngine::WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = m_hInst; wcex.hIcon = LoadIcon(m_hInst, MAKEINTRESOURCE(IDI_RENDERENGINE)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = MAKEINTRESOURCE(IDC_RENDERENGINE); wcex.lpszClassName = m_szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); return RegisterClassEx(&wcex); } LRESULT CALLBACK RenderEngine::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: DialogBox(m_hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } bool RenderEngine::InitInstance() { m_hWnd = NULL;// When I step into my code it says on this line 0x000000 unused = ??? expression cannot be evaluated m_hWnd = CreateWindow(m_szWindowClass, m_szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, m_hInst, NULL); if (!m_hWnd)// At this point, memory has been allocated unused = ??. It steps over this { return FALSE; } if(!ShowWindow(m_hWnd, m_nCmdShow))// m_nCmdShow = 1 and m_hWnd is still unused and expression {//Still cannot be evaluated. This statement is true. and shuts down. return false; } UpdateWindow(m_hWnd); return true; } // Message handler for about box. INT_PTR CALLBACK RenderEngine::About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(lParam); switch (message) { case WM_INITDIALOG: return (INT_PTR)TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return (INT_PTR)TRUE; } break; } return (INT_PTR)FALSE; } int RenderEngine::Run() { MSG msg; HACCEL hAccelTable; hAccelTable = LoadAccelerators(m_hInst, MAKEINTRESOURCE(IDC_RENDERENGINE)); // Main message loop: while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return (int) msg.wParam; } and my winMain function that calls the class // RenderEngine.cpp : Defines the entry point for the application. #include "stdafx.h" #include "RenderEngine.h" // Global Variables: RenderEngine go; int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); // TODO: Place code here. RenderEngine::m_hInst = hInstance; go.m_nCmdShow = nCmdShow; if(!go.InitWindow()) { return 0; } go.Run(); return 0; }

    Read the article

  • Android 1.6: onActivityResult is not called

    - by Seb
    Hi, I have a problem with the method "onActivityResult". I create a new Activity from my main activity: Intent intent = new Intent(this, NewActivity.class); startActivityForResult(intent, 0); The new Activity is ended like this: Intent resultIntent = new Intent(); resultIntent.putExtra("vid", hmvenues.get(venues[currentPosition])); resultIntent.putExtra("name", venues[currentPosition]); setResult(RESULT_OK, resultIntent); finish(); But the Method onActivityResult seem to be not called @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(this.getClass().getName(),"onActivityResult"); ... } Does anyone have an idea, what I did wrong? Thanks!! Seb

    Read the article

  • disable a form in asp.net..

    - by rohit
    hi iam working on asp.net using c# project...iam facing a problem...the problem is,i had a master page in which iam using collapse pannel(ajax control)... in collapse pannel i had folders like:- xyz abc def ghi.... and in xyz folder i had some forms.... nw the problem is that i had a search menu in my main page(comes after login)...after searching a grid view is open and in that there is a column name (suppose) XYZ...so when i click on items in that column then only i want xyz folder to be enable or viewed so that i acess forms in that folder....hw cud i do that..i search alot but didn't get the solution..plz help me go through this...

    Read the article

  • C# ref question again?

    - by TheMachineCharmer
    class Foo { public int A { get; set; } } class Program { static void Main(string[] args) { var f = new Foo(); var ff = f; Console.WriteLine(f.GetHashCode()); Console.WriteLine(ff.GetHashCode()); FooFoo(ref f); BarBar(f); } private static void BarBar(Foo f) { Console.WriteLine(f.GetHashCode()); } private static void FooFoo(ref Foo f) { Console.WriteLine(f.GetHashCode()); } } OUTPUT: 58225482 58225482 58225482 58225482 What is the difference between FooFoo and BarBar?

    Read the article

  • Is it possible to find out what FlashBuilder is doing during compilation?

    - by justkevin
    I've found that Flash Builder 4 (formerly Flex Builder) has trouble working with large projects. After a certain point, builds seem to take longer and longer. I've tried many different ways of improving build time including: Moving embedded resources into externally linked projects. Using -incremental. Tweaking the .ini jvm settings including memory and -server. Turning off automatic build (I'd prefer not to have to do this, because one of the main reasons for using an IDE is to be told about errors as you make them). Deleting the project and re-checking out from the repository. While some of these may help a bit, the performance is still annoyingly slow. I feel if I knew what was taking so long I could refactor my projects to build faster. Is there some setting that tells FlashBuilder to let me see what parts of the build process take so much time?

    Read the article

  • How do I pass an array to a method?

    - by ambidextorous
    Hey, I have not been able to find a proper answer on any forums about this. But how exactly do I pass an array to a class constructor? public class TestArray { String name; String[] array; public TestArray(String name, String[] anArray){ this.name = name; int len = anArray.length; this.array = new String[len]; for (int i = 0; i < len; i++) { this.array[i] = new String(anArray[i]); } } public static void main(String[] args){ String[] anArray = new String[2]; anArray[0] = new String("Test"); anArray[1] = new String("Test2"); TestArray work = new TestArray("Jordan", anArray); // How to pass the array? } }

    Read the article

  • EPOC EMOTIV cognitive suite is user dependent or independent

    - by Varun Malhotra
    After working a bit with EPOC EMOTIV, i suspect that its cognitive suite is user dependent, though its other suites are not and work absolutely well in all cases. It's use in cognitive area is wide and many such applications have also been developed. BCI CAD 3D geometry shapes are also a good example. But the main issue i want to highlight is that is it's cognitive suite depends on a particular set of data( same set always). I want to work more deeper with cognitive suite so any help(suggestions, research papers, EEG data processing), anything which can be a great source to deal with. Thanks!

    Read the article

  • Planning a skillset for a fallback career [closed]

    - by Davy Kavanagh
    I'm not too certain this is a SO question, but I didn't think it belonged in meta either. Long story short, I am bioinformatics researcher. I like to code, it's my favourite part of the job. I have been thinking for a while that if academia is not kind to me, I might seek a career in software development. My current contract is for three years and I would like to spend some time over the next 3 three years learning and practicing software development as possible. Python seems like a popular language and it what I mostly use to do things for me, but I am also in heavy use of R. So my main question is: Are python and R good things to be learning with a sotfware dev goal in mind, and if so, is there any particular type of programming or software that might be useful to have experience with. Hard questions to answer I know, but I thought I would get the answer from people who are in the know. Cheers, Davy.

    Read the article

  • Difference between debug and release.

    - by atch
    Why when I'm debugging in debug mode everything in code below works as suppose to but when I switch to release I'm getting strange result? void say_hello(int argc, char* argv[])//In release mode argc has different values from 124353625 to 36369852 <include iostream> { std::cout << "In say_hello()\n"; } int main(int argc, char* argv[]) { say_hello(3,argv);//when instead of literal I enter "argc" everything is ok. return 0; } Thanks for help.

    Read the article

  • Efficiently display file status when using background thread

    - by schmoopy
    How can i efficiently display the status of a file when using a background thread? For instance, lets say i have a 100MB file: when i do the code below via a thread (just as an example) it runs in about 1 min: foreach(byte b in file.bytes) { WriteByte(b, xxx); } But... if i want to update the user i have to use a delegate to update the UI from the main thread, the code below takes - FOREVER - literally i don't know how long im still waiting, ive created this post and its not even 30% done. int total = file.length; int current = 0; foreach(byte b in file.bytes) { current++; UpdateCurrentFileStatus(current, total); WriteByte(b, xxx); } public delegate void UpdateCurrentFileStatus(int cur, int total); public void UpdateCurrentFileStatus(int cur, int total) { // Check if invoke required, if so create instance of delegate // the update the UI if(this.InvokeRequired) { } else { UpdateUI(...) } }

    Read the article

  • Printing the address of a struct object

    - by bdhar
    I have a struct like this typedef struct _somestruct { int a; int b; }SOMESTRUCT,*LPSOMESTRUCT; I am creating an object for the struct and trying to print it's address like this int main() { LPSOMESTRUCT val = (LPSOMESTRUCT)malloc(sizeof(SOMESTRUCT)); printf("0%x\n", val); return 0; } ..and I get this warning warning C4313: 'printf' : '%x' in format string conflicts with argument 1 of type 'LPSOMESTRUCT' So, I tried to cast the address to int like this printf("0%x\n", static_cast<int>(val)); But I get this error: error C2440: 'static_cast' : cannot convert from 'LPSOMESTRUCT' to 'int' What am I missing here? How to avoid this warning? Thanks.

    Read the article

  • How do I force my std::map to deallocate memory used?

    - by monkeyking
    I'm using a std::map, and I can't seem to free the memory back to the OS. It looks like, int main(){ aMap m; while(keepGoing){ while(fillUpMap){ //populate m } doWhatIwantWithMap(m); m.clear(); //flush some buffered values into map for next iteration flushIntoMap(m); } } Each (fillUpmap) allocates around 1gig, so I'm very much interested in getting this back to my system before it eats up all my memory. Ive experienced the same with std::vector, but there I could force it to free by doing a swap with an empty std::vector. This doesn't work with map. When I use valgrind it says that all memory is freed, so its not a problem with a leak, since everything is cleared up nicely after a run.

    Read the article

  • Threaded Django task doesn't automatically handle transactions or db connections?

    - by Gabriel Hurley
    I've got Django set up to run some recurring tasks in their own threads, and I noticed that they were always leaving behind unfinished database connection processes (pgsql "Idle In Transaction"). I looked through the Postgres logs and found that the transactions weren't being completed (no ROLLBACK). I tried using the various transaction decorators on my functions, no luck. I switched to manual transaction management and did the rollback manually, that worked, but still left the processes as "Idle". So then I called connection.close(), and all is well. But I'm left wondering, why doesn't Django's typical transaction and connection management work for these threaded tasks that are being spawned from the main Django thread?

    Read the article

  • Triggering CSV download using Javascript?

    - by Sam Lee
    I have an url /reportcsv that generates a plain text csv with Content-type: text/csv and Content-disposition: attachment; filename=report.csv. I want trigger this csv to be downloaded using Javascript. I'm considering two methods: 1) Setting location.href = /reportcsv 2) Setting an iframe url to /reportcsv Both seem to work in Safari. I was wondering if there is any difference between them, or if one is recommended over the other. My main requirement is that I don't want the user to leave the current page.

    Read the article

  • Memory leak in C++ program.

    - by lampshade
    What I have is a very crude linked list..THe problem for me is that I am getting a memory leak in the constructor or main. I think it is the constructor. I have not yet deleted the eventName varaible that I have allocated memory for. Could someone help please? :/ (This is not a homework question) class Event { private: char * eventName ; string userEvent; struct node { node(); node * nextByName; const char * eventName; }; node * headByName; public: Event(const char * eventName, const Date &myDate); Event(); virtual ~Event(); void insert(const char * eventName, const Date &myDate, const Time &myTime); void setEvent(); const char * const getEvent() const { return userEvent.c_str(); }; void displayByName(ostream& out) const; }; Event::Event(const char * eventName, const Date &myDate) : eventName(new char[strlen(eventName)+1]), headByName(NULL), userEvent("") { if (eventName) { size_t length = strlen(eventName) +1; strcpy_s(this->eventName, length, eventName); } else eventName = NULL; } Event::Event() : eventName(NULL), userEvent(NULL), headByName(NULL) { } Event::~Event() { node * temp_node = NULL; node * current_node = headByName; while ( current_node ) { temp_node = current_node->nextByName; delete current_node; current_node = temp_node; } } void Event::insert(const char * eventName, const Date &myDate, const Time &myTime) // when we insert we dont care about the time, just the name and the date { node * current_node = new node(); if ( headByName == NULL ) { headByName = current_node; headByName->eventName = eventName; } else { node * search_node = headByName; node * prev_node = NULL; while ( search_node != NULL ) { prev_node = search_node; search_node = search_node->nextByName; } if ( NULL == prev_node ) { headByName = current_node; } else { prev_node->nextByName = current_node; } current_node->nextByName = search_node; current_node->eventName = eventName ; } } void Event::displayByName(ostream& out) const { cout << "Scheduled Events are: " << endl << endl; node * current_node = headByName; while ( current_node ) { (char*)eventName = (char*)current_node->eventName; out << eventName << endl; current_node = current_node->nextByName; } } Event::node::node() : nextByName(NULL), eventName(NULL) { } void Event::setEvent() { cout << "\n\nEnter a new event! "; cin.getline((char*)userEvent.c_str(), 256); size_t length = strlen(userEvent.c_str()) +1; strcpy_s((char*)this->userEvent.c_str(), length, userEvent.c_str()); } /********************************************************************************* **********************************************************************************/ int main() { Date * dPtr = new Date("March", 21, 2010); // instaintiate our Date class object by allocating default date paramateres. Event * ePtr = new Event("First Day of Spring", *dPtr); Time * tPtr = new Time(10,12,"PM"); cout << "default Time is: " << tPtr << endl; cout << "default Date is: " << dPtr << endl; ePtr->insert("First Day of Spring",*dPtr, *tPtr); ePtr->insert("Valentines Day", Date("February",14,2010), *tPtr); ePtr->insert("New Years Day", Date("Janurary",1,2011), *tPtr); ePtr->insert("St. Patricks Day", Date("March",17,2010), *tPtr); ePtr->displayByName(cout); ePtr->setEvent(); const char * const theEvent = ePtr->getEvent(); dPtr->setDate(); ePtr->insert(theEvent, *dPtr, *tPtr); tPtr->setTime(); cout << "Your event: " << theEvent << " is scheduled for: " << endl << dPtr << "at" << tPtr; ePtr->displayByName(cout); delete tPtr; delete dPtr; delete ePtr; cin.ignore(); return 0; }

    Read the article

  • Generating PDF results in single page only?

    - by A T
    Generating a PDF from an email (Zurb Ink templated); but am always presented with a single page PDF. Runnable test-case: from weasyprint import HTML, CSS from urllib2 import urlopen if __name__ == '__main__': html = urlopen('http://zurb.com/ink/downloads/templates/basic.html').read() html = html.replace('<p class=\"lead\">', '{0}<p class=\"lead\">'.format( '<p class=\"lead\">{0}</p>'.format("foobar " * 50) * 50)) HTML(string=html).write_pdf('foo.pdf', stylesheets=[ CSS(string='@page { size: A4; margin: 2cm };' '* { float: none !important; };' '@media print { nav { display: none; } }') ]) How do I get a multi-page PDF?

    Read the article

  • Custom DataSource Extender

    - by Brian
    I dream of creating a control which works something like this: <asp:SqlDataSource id="dsFoo" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>" SelectCommandType="StoredProcedure" SelectCommand="cmd_foo"> </asp:SqlDataSource> <Custom:DataViewSource id="dvFoo" runat="server" rowfilter="colid &gt; 10" datasourceid="dsFoo"> </Custom:DataViewSource> I can accomplish the same thing in the code behind by executing cmd_foo, loading the results into a DataTable, then loading them into a DataView with a RowFilter. The goal would be to have multiple DataViews for one DataSource with whatever special filters I wish to apply to the select portion of the DataSource. I could imagine extending this to be more powerful. I tried peaking at this and this but am a bit confused on a few points. Currently, my main issue is being unsure where to grab the output data of the DataSource so I can stick it into a DataTable.

    Read the article

  • How do I clear the contents of a file using c?

    - by Eddy
    I'm writing some code so that at each iteration of a for loop it runs a functions which writes data into a file, like this: int main() { int i; /* Write data to file 100 times */ for(i = 0; i < 100; i++) writedata(); return 0; } void writedata() { /* Create file for displaying output */ FILE *data; data = fopen("output.dat", "a"); /* do other stuff */ ... } How do I get it so that when I run the program it will delete the file contents at the beginning of the program, but after that it will append data to the file? I know that using the "w" identifier in fopen() will open a new file that's empty, but I want to be able to 'append' data to the file each time it goes through the 'writedata()' function, hence the use of the "a" identifier.

    Read the article

  • How to invoke static method in C#4.0 with dynamic type?

    - by Morgan Cheng
    In C#4.0, we have dynamic type, but how to invoke static method of dynamic type object? Below code will generate exception at run time. class Foo { public static int Sum(int x, int y) { return x + y; } } class Program { static void Main(string[] args) { dynamic d = new Foo(); Console.WriteLine(d.Sum(1, 3)); } } IMHO, dynamic is invented to bridge C# and other programming language. There is some other language (e.g. Java) allows to invoke static method through object instead of type. BTW, The introduction of C#4.0 is not so impressive compared to C#3.0.

    Read the article

  • How does this iterative Tower of Hanoi work? C

    - by Nitesh Panchal
    Hello, while surfing google, i found this interesting solution to Tower Of Hanoi which doesn't even use stack. Can anybody explain me in brief, what is it actually doing? And this solution really acceptable? #include <stdio.h> #include <stdlib.h> int main() { int n, x; printf( "How many disks? " ); scanf( "%d", &n ); printf("\n"); for (x=1; x < (1 << n); x++) printf( "move from tower %i to tower %i.\n", (x&x-1)%3, ((x|x-1)+1)%3 ); return 0; }

    Read the article

  • How can I selectively override a django .count() method

    - by Tom Viner
    I'm using postGresSQL and my main table has about 20,000 rows. Sometimes count() methods can take ages or even timeout. Mod.manager.filter(...).count() I need to selectively override the count() method depending on what filter has been applied. Just having a cache of results would be a great gain but I'd like to be able to say: if filter query is just {'enabled'=True} then return 20,000 without touching the db. Note: I can't prevent the call to .count() as it's inside django's pagination, which always does a count.

    Read the article

  • Error HRESULT E_FAIL when creating Exchange mailbox (CDOEXM.IMailboxStore.CreateMailbox)

    - by Matt
    I am trying to automate the process of creating an Exchange Mailbox for AD users and am running into an issue. When calling the CreateMailbox method I am receiving the error "Error HRESULT E_FAIL has been returned from a call to a COM component". I have installed and referenced the Exchange Management Tools and am using impersonation for permissions. Here is the code: ActiveDs.IADsUser adUser = (ActiveDs.IADsUser)user.NativeObject; adUser.AccountDisabled = !Active; user.CommitChanges(); //Set Password user.Invoke("SetPassword", Password); user.CommitChanges(); //Create Mailbox IMailboxStore mailbox; mailbox = (IMailboxStore)adUser; mailbox.CreateMailbox("LDAP://CN=StandardUsers,CN=StandardUsers,CN=InformationStore,CN=xxxxx," + "CN=Servers,CN=First Administrative Group,CN=Administrative Groups," + "CN=xxxxx Main,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=xxxxx,DC=com"); user.CommitChanges();

    Read the article

< Previous Page | 552 553 554 555 556 557 558 559 560 561 562 563  | Next Page >