tab switching [...] needing to use the mouse is my one and only gripe with tabbed browsing.
I don't consider using mouse as entirely negative thing. I have configured Mozilla to open a link in the background in a new tab if I click it with a middle mouse button. And I've configured my mouse gestures so that keeping middle mouse button down and moving mouse upwards at least 10 pixels and releasing the mouse button gets me to the previous tab. Moving the mouse at least 10 pixels downwards gets me to the next tab. As I'm already mousing a lot to be able to quickly follow links on the page it isn't that big problem to move mouse 10 pixels to change between tabs.
And it [shortcut to change between tabs] used to be ^tab, but they changed it. I don't know why.
See Mozilla keyboard navigation. See also Mozilla bug #103796 (no direct linking to bugzilla.) Basically only windows had standard shortcuts for stuff like that and it happened to be CTRL+Page Up/Down and the moz dev team decided to copy it. CTRL+TAB was decided to be used to navigate between frames. However, for me changing between different tabs is more important action than changing between different frames with keyboard. What's the simplest way to swap those shortcuts? Can I add something to user.js or is it something harder? Usually I use mouse gestures for the tab switching...
No. Game latency would increase in P2P. While you might have a lower ping to your peers, the gamestate itself would be lagged. It's much faster to have 50 clients communicating with a single host than to have 50 peers computing and pssing on info in some twisted way. Especially since YOU CAN'T TRUST THE CLIENT. EVER.
I really cannot defend myself about the latency issue as I haven't coded P2P network code for any game--I'm just guessing that in the near future the last mile does have pretty good bandwidth but not that good latency and in that case P2P could help with the latency. And in the long run you can have all the bandwidth you need but the latency isn't going down because the light is so damn slow. All clients need more computing power because they are doing the work for both server and client but that shouldn't be an issue as Doom3 already requires that much CPU power anyway.
About what comes to trusting the client I tried to explain the issue. It doesn't matter if the client isn't the official one as long as all the clients in the game are using the same version. Because all clients calculate the state then a single cheating one can be identified by comparing the results. That comparision doesn't need to be real time so it doesn't hurt the performance. If there're four players in a game and three of them are using cheater-version and you're using the original then you are the cheater in that game because you have different version from the rest.
There's no way you can ever get rid of aim bots and stuff that emulates the stuff the human player is trying to do, only better. Perhaps today you have to integrate the cheat in the client binary but soon you have the prosessing power required to identify those targets from the resulting frames and you can have an aim bot working without cracking the client binary.
The crossover to real P2P is when all connected clients are also acting as servers to eachother concurrently. Of course the problem with that it introduces massive opportunities for cheats and DoS exploits. It's also hard to maintain a reasonable amount of latency.
I'd guess that this would instead decrease the latency compared to anything seen in Quake and kind. In Quake every client has to send all the movement to the server which then calculates some stuff and sends the info to all the clients. With P2P system all the clients send that client's movements to all the other clients so there's one one-way-trip less to go for every packet and the latency should go down.
In addition because every client is acting as a server the calculations should match. If a single client has different results you can be pretty sure that it's cheating and the others could vote it out. Though, incorrect results could be due lag or something but I think it could be made automatic so that other client would give a mistrust point if it seems that the other client is getting incorrect results and if some threshold is exceeded that client would be considered as a cheater. Perhaps add an centralized server for blacklisting the cheaters and hopefully we could happily live without cheating.
The only question is if this is going to fly in the real world--you need more bandwidth to send all the stuff to all the clients and syncing the clients must be one hell of a job. If there's one game company that could successfully do this, it's id. Remains to be seen if that's enough.
I just tried installing it [optimoz], and the way it's done leaves them almost useless. [...] Middle button will paste things [...] installation to actually work properly, as it gave me no end of permission problems [...]
Do you use the middle button to paste URLs to content area? I don't, so I use middle button for gestures and added user_pref("middlemouse.contentLoadURL", false); to user.css. Also, I modified gestimp.js after installing Optimoz so that the gestures I want to use are easy to make. Just modify those addGesture() calls: for example, addGesture("LRL", "Close Document [1]","closeDoc();"); tells that if I move Left-Right-Left (kind of wipe out) the active window closes. If you want to make some interesting gestures you might want to disable the default action for the middle mouse button over a link. See info about hidden Mozilla prefs.
Oh, and if you make any changes to gestimp.js make sure to back it up or it will be lost after you upgrade Mozilla and/or Optimoz.
Also, if you have a recent Mozilla installation you probably want to open html.css too and remove the support for marquee and blink.
I never had any problems installing Optimoz either. You probably have some problems with the Mozilla installation itself. I installed my copy of Mozilla without root and run it without root. If you installed Mozilla as a root you might need to install addons as a root too and even start Mozilla once as a root.
Re:You forgot to add an obligatory windows joke
on
First Man To Mars?
·
· Score: 0, Flamebait
Send Gates and control the trip with Windows machine and it'll be a half-way ticket.
Do you also use 85mm floppy disks with the Lehnux operating system? There isn't such thing as a 3 inch CD. CDs come with the diameter of 12 or 8 cm and the credit card sized things only have some pieces cut off and can contain roughly 50MB. You know, that never-heard-of SI measurement called centimeter.
Yes, there're 720x480=245600 pixels in a single NTSC frame (two fields!) and 1920x1080=2073600 pixels in 1080i frame. However, I really hope that 1080i wouldn't be used that much as I'm really sick of interlacing problems. I'm afraid that there will be, once again, different hacks to get full resolution like 2:2 pulldowns and stuff if 1080i catches on.
As we have digital transfer why not make it progressive in all cases and simply drop some bits if transfer media cannot keep up. How does 1080p sound like? This way you can use full resolution for relatively static images and get practically the same or better quality with fast moving objects as with the current approach. As can be seen in normal NTSC and PAL you cannot use full vertical resolution with interlaced displays because of the flickering, even with static images. And interlacing looks always bad when there's any horizontal movement. Doesn't anybody wonder why there isn't interlaced desktop monitors anymore? Perhaps they were deemed inferior in all cases?
Yeah, the spec is already locked and interlacing was probably selected to reduce hardware costs but just a tought.
if you put 2 lasers at 2 intervals then you read twice as fast.
3 lasers, three times as fast etc
Or 7, like kenwood did three years ago. Though, I think that they are using only one laser and beam splitter and mirrors and stuff instead of multiple lasers.
But you still cannot get 7ths, 9ths or 11ths smootly. Do you have something against odd numbers? My point is that selecting any number base because it makes dividing with some arbitrary numbers easier is just silly. IMO binary is the best because you need only two symbols. Numbers might have more digits but you could use much simpler symbols. For example, |:|:|: could be 42 and |::::|::|::|: could be 4242 (if you've variable width font those don't look that long).
I can understand how it works but I fail to find any logic in it. Why you cannot change AM/PM and overflow the clock numbers at the same time? Oh yeah, it's because your clock notation is a relic from time when number zero wasn't yet invented. How about using ISO 8601?
Clearly? AFAIK 11:57PM is the same thing as 23:57 in 24h notation. And one hour later it's 12:57AM. WTF, where that "A" came from? What really puzzles me is that 12:57AM actually means 12 hours 57 minutes after noon even though there reads "AM" which should mean after midnight. But if you think that is a clear system I can see why the metric system seems weird and unnecessary:)
You try doing 1/3 of 12 vs 10 quickly in your head.
You try doing 1/5 of 12 vs 10 quickly in your head. Your point was? Is 3 much better than 5? Perhaps we should use base15 (3*5), base105 (3*5*7) or base1155 (3*5*7*11)? Identifying 1155 different symbols would be a real pain, though. You cannot come up with a base that makes all primes easy dividers, can you?
3.33333333 is only an approximation, which is the point he was making. You cannot express 1/3 of a metre exactly as a decimal.
And why should that matter? You cannot express 1/7th of a yard exactly as decimal (in feets or inches) either even though the non-metric system is *so* wonderful when it comes to divisions. And when somebody says "1/3 of a meter" they don't mean 333mm but something more than 25cm but less than 0.4m.
Metric time would make calculation of time intervals easy. Defining a single moment of time is easy with the current system too - or at least with 24h clock. What does 12:57PM mean after all? Is it 00:57 or 12:57 after the midnight? And which date? Also, time is pretty much the last thing that isn't yet metric and conversions between of all the units that are related to time would be much simpler. SI system measures speed (velocity) in meters per second (m/s) but because second is such a small unit of time we normally have to multiply by 3.6 (for 60*60/1000) to get to km/h. Going from ft/s to mph is even harder, though, so keeping everything imperial doesn't help. If everything was metric it wouldn't matter that much if some data was displayed as m/s or km/mh [metric hour].
I'm fine with the current 24h time because I'm customized to it. It's far from perfect but mostly usable. On the other hand, I think we should forget the months for a measurement of time. Who needs those anyway? Companies calculate everything in days, weeks and quarters and I'd be fine with days only. Define a year as 365 days (and during leap years, the extra day is the last one!) and week as a 10 day period. Weekend would be last 3 days of a week (which would make a weekend 5% longer than now:) and first day of the year would be the first day of the first week. Note that the first day of the year would be numbered zero (like first hour of the day is zero) because there haven't been any days yet after the start of the year.
How about a simple "egrep -nr 'socket|connect' *" before running configure and compiling software? If you see any lines in the output and don't understand why they are there you shouldn't run configure or compile the software. IMO, if you don't know why you should check for at least socket you shouldn't compile software at all.
Granted, exploit could be hidden from such a simple check but it still seems that above would be enough to prevent backdoors.
At this stage, it is impossible to design a page that:
Uses a complex CSS-based layout (though simple ones work pretty well)
Renders correctly in IE5, IE6, and Mozilla
Adheres strictly to the standards (XHTML 1.1, CSS2)
Doesn't use any browser detection tricks
It's not possible to comply with all of 1, 2 and 3 because IE5 doesn't follow CSS box model. For example in IE5 width=padding+contentwidth+border but in real CSS width=contentwidth. In addition, not a single version of IE correctly support CSS2 box model. As for 4, if I write html>body h1 {color: red;} does that count as browser detection trick? It's proper CSS2 but no version of IE supports it so it can be used to hide CSS properties that are known to be broken in IE like position: fixed.
Issues like Mozilla's poor/non-existant support for Q-element or lang() selectors look pretty minor compared to IE's bugs.
I make pages according to spec, test with mozilla and hide the CSS that breaks IE or Opera with selector tricks. It seems that Opera is the thoughest one to work around because it implements so much that simple selector trick is hard to come up with but some of it's bugs are so bad that they cannot be left as is. (position: absolute compibined with bottom property comes to mind first.)
insists on adding.exe extensions to anything delivered as application/octet-stream
Duh, how hard it's to add application/octet-stream to helper applications in prefs? Just make sure you don't add file extension. After adding content type click Edit... and select Save to Disk and clear the checkbox. IMO should be like this by default but this is no way a hard one to work around.
What I cannot figure out is how to keep the quicktime plugin and still force tiffs to be downloaded instead of displayed by quicktime, though.
If you liked that feature you might want to try some of these too: http://www.geocities.com/pratiksolanki/. For example, you might want to enable the feature for Windows too.
I never use more than 256megs of ram, so buying more ram wont help.
Really? How about getting a gig or two of memory and copying the whole system to ramdrive during startup? The copying will take something like 30s so it even boots faster than that above mentioned cooler setup. Guess if loading an application from memory is faster than loading it from disk? Of couse, if all you do is scientific calculations and you're CPU bound then it doesn't help, but in that case you probably would need more than 256MB to boot and money is better spent in SMP box anyway...
IMO, the syntax used to define two pointers on a single line in the C is broken. I'd guess that it's a mistake in the original spec and simply hasn't been corrected because the fix would break some code.
Think about it, the real type is "char*" "bar" not "char" "*bar". This can be easily demonstrated with the type casting syntax: you write "(char*)(foo)" instead of (char)(*foo) -- and notice how those mean different things. I always write "char* foo;" and define only one pointer per line. I define loop counters like i, j, k, m and n on a single line, though.
Shogi sounds like it would fit the/. crowd...lotsa mating problems
It sounds like we're going into right direction already. According to article "in mating problems [...] the computer is already superior to the best players." Need I say more?
In addition, unlike Opera, optimoz users are able to define which gesture does what. Simply edit bin\chrome\mozgest\content\gestimp.js under the Mozilla installation directory and change it as you like. For example, I have "D" (down) binded to nextTab() and "U" (up) binded to previousTab(). Adding new actions is easy too because support for gestures implemented in pure javascript.
I don't consider using mouse as entirely negative thing. I have configured Mozilla to open a link in the background in a new tab if I click it with a middle mouse button. And I've configured my mouse gestures so that keeping middle mouse button down and moving mouse upwards at least 10 pixels and releasing the mouse button gets me to the previous tab. Moving the mouse at least 10 pixels downwards gets me to the next tab. As I'm already mousing a lot to be able to quickly follow links on the page it isn't that big problem to move mouse 10 pixels to change between tabs.
See Mozilla keyboard navigation. See also Mozilla bug #103796 (no direct linking to bugzilla.) Basically only windows had standard shortcuts for stuff like that and it happened to be CTRL+Page Up/Down and the moz dev team decided to copy it. CTRL+TAB was decided to be used to navigate between frames. However, for me changing between different tabs is more important action than changing between different frames with keyboard. What's the simplest way to swap those shortcuts? Can I add something to user.js or is it something harder? Usually I use mouse gestures for the tab switching...
I really cannot defend myself about the latency issue as I haven't coded P2P network code for any game--I'm just guessing that in the near future the last mile does have pretty good bandwidth but not that good latency and in that case P2P could help with the latency. And in the long run you can have all the bandwidth you need but the latency isn't going down because the light is so damn slow. All clients need more computing power because they are doing the work for both server and client but that shouldn't be an issue as Doom3 already requires that much CPU power anyway.
About what comes to trusting the client I tried to explain the issue. It doesn't matter if the client isn't the official one as long as all the clients in the game are using the same version. Because all clients calculate the state then a single cheating one can be identified by comparing the results. That comparision doesn't need to be real time so it doesn't hurt the performance. If there're four players in a game and three of them are using cheater-version and you're using the original then you are the cheater in that game because you have different version from the rest.
There's no way you can ever get rid of aim bots and stuff that emulates the stuff the human player is trying to do, only better. Perhaps today you have to integrate the cheat in the client binary but soon you have the prosessing power required to identify those targets from the resulting frames and you can have an aim bot working without cracking the client binary.
I'd guess that this would instead decrease the latency compared to anything seen in Quake and kind. In Quake every client has to send all the movement to the server which then calculates some stuff and sends the info to all the clients. With P2P system all the clients send that client's movements to all the other clients so there's one one-way-trip less to go for every packet and the latency should go down.
In addition because every client is acting as a server the calculations should match. If a single client has different results you can be pretty sure that it's cheating and the others could vote it out. Though, incorrect results could be due lag or something but I think it could be made automatic so that other client would give a mistrust point if it seems that the other client is getting incorrect results and if some threshold is exceeded that client would be considered as a cheater. Perhaps add an centralized server for blacklisting the cheaters and hopefully we could happily live without cheating.
The only question is if this is going to fly in the real world--you need more bandwidth to send all the stuff to all the clients and syncing the clients must be one hell of a job. If there's one game company that could successfully do this, it's id. Remains to be seen if that's enough.
Do you use the middle button to paste URLs to content area? I don't, so I use middle button for gestures and added user_pref("middlemouse.contentLoadURL", false); to user.css. Also, I modified gestimp.js after installing Optimoz so that the gestures I want to use are easy to make. Just modify those addGesture() calls: for example, addGesture("LRL", "Close Document [1]","closeDoc();"); tells that if I move Left-Right-Left (kind of wipe out) the active window closes. If you want to make some interesting gestures you might want to disable the default action for the middle mouse button over a link. See info about hidden Mozilla prefs.
Oh, and if you make any changes to gestimp.js make sure to back it up or it will be lost after you upgrade Mozilla and/or Optimoz.
Also, if you have a recent Mozilla installation you probably want to open html.css too and remove the support for marquee and blink.
I never had any problems installing Optimoz either. You probably have some problems with the Mozilla installation itself. I installed my copy of Mozilla without root and run it without root. If you installed Mozilla as a root you might need to install addons as a root too and even start Mozilla once as a root.
Send Gates and control the trip with Windows machine and it'll be a half-way ticket.
Microsoft gets to decide what is being distributed and what not.
Do you also use 85mm floppy disks with the Lehnux operating system? There isn't such thing as a 3 inch CD. CDs come with the diameter of 12 or 8 cm and the credit card sized things only have some pieces cut off and can contain roughly 50MB. You know, that never-heard-of SI measurement called centimeter.
As we have digital transfer why not make it progressive in all cases and simply drop some bits if transfer media cannot keep up. How does 1080p sound like? This way you can use full resolution for relatively static images and get practically the same or better quality with fast moving objects as with the current approach. As can be seen in normal NTSC and PAL you cannot use full vertical resolution with interlaced displays because of the flickering, even with static images. And interlacing looks always bad when there's any horizontal movement. Doesn't anybody wonder why there isn't interlaced desktop monitors anymore? Perhaps they were deemed inferior in all cases?
Yeah, the spec is already locked and interlacing was probably selected to reduce hardware costs but just a tought.
Or 7, like kenwood did three years ago. Though, I think that they are using only one laser and beam splitter and mirrors and stuff instead of multiple lasers.
Nah, I prefer 1537 Paper St., Wilmington, DE 19808.
But you still cannot get 7ths, 9ths or 11ths smootly. Do you have something against odd numbers? My point is that selecting any number base because it makes dividing with some arbitrary numbers easier is just silly. IMO binary is the best because you need only two symbols. Numbers might have more digits but you could use much simpler symbols. For example, |:|:|: could be 42 and |::::|::|::|: could be 4242 (if you've variable width font those don't look that long).
I can understand how it works but I fail to find any logic in it. Why you cannot change AM/PM and overflow the clock numbers at the same time? Oh yeah, it's because your clock notation is a relic from time when number zero wasn't yet invented. How about using ISO 8601?
Clearly? AFAIK 11:57PM is the same thing as 23:57 in 24h notation. And one hour later it's 12:57AM. WTF, where that "A" came from? What really puzzles me is that 12:57AM actually means 12 hours 57 minutes after noon even though there reads "AM" which should mean after midnight. But if you think that is a clear system I can see why the metric system seems weird and unnecessary :)
You try doing 1/5 of 12 vs 10 quickly in your head. Your point was? Is 3 much better than 5? Perhaps we should use base15 (3*5), base105 (3*5*7) or base1155 (3*5*7*11)? Identifying 1155 different symbols would be a real pain, though. You cannot come up with a base that makes all primes easy dividers, can you?
And why should that matter? You cannot express 1/7th of a yard exactly as decimal (in feets or inches) either even though the non-metric system is *so* wonderful when it comes to divisions. And when somebody says "1/3 of a meter" they don't mean 333mm but something more than 25cm but less than 0.4m.
Metric time would make calculation of time intervals easy. Defining a single moment of time is easy with the current system too - or at least with 24h clock. What does 12:57PM mean after all? Is it 00:57 or 12:57 after the midnight? And which date? Also, time is pretty much the last thing that isn't yet metric and conversions between of all the units that are related to time would be much simpler. SI system measures speed (velocity) in meters per second (m/s) but because second is such a small unit of time we normally have to multiply by 3.6 (for 60*60/1000) to get to km/h. Going from ft/s to mph is even harder, though, so keeping everything imperial doesn't help. If everything was metric it wouldn't matter that much if some data was displayed as m/s or km/mh [metric hour].
I'm fine with the current 24h time because I'm customized to it. It's far from perfect but mostly usable. On the other hand, I think we should forget the months for a measurement of time. Who needs those anyway? Companies calculate everything in days, weeks and quarters and I'd be fine with days only. Define a year as 365 days (and during leap years, the extra day is the last one!) and week as a 10 day period. Weekend would be last 3 days of a week (which would make a weekend 5% longer than now :) and first day of the year would be the first day of the first week. Note that the first day of the year would be numbered zero (like first hour of the day is zero) because there haven't been any days yet after the start of the year.
Granted, exploit could be hidden from such a simple check but it still seems that above would be enough to prevent backdoors.
It's not possible to comply with all of 1, 2 and 3 because IE5 doesn't follow CSS box model. For example in IE5 width=padding+contentwidth+border but in real CSS width=contentwidth. In addition, not a single version of IE correctly support CSS2 box model. As for 4, if I write html>body h1 {color: red;} does that count as browser detection trick? It's proper CSS2 but no version of IE supports it so it can be used to hide CSS properties that are known to be broken in IE like position: fixed.
Issues like Mozilla's poor/non-existant support for Q-element or lang() selectors look pretty minor compared to IE's bugs.
I make pages according to spec, test with mozilla and hide the CSS that breaks IE or Opera with selector tricks. It seems that Opera is the thoughest one to work around because it implements so much that simple selector trick is hard to come up with but some of it's bugs are so bad that they cannot be left as is. (position: absolute compibined with bottom property comes to mind first.)
Duh, how hard it's to add application/octet-stream to helper applications in prefs? Just make sure you don't add file extension. After adding content type click Edit... and select Save to Disk and clear the checkbox. IMO should be like this by default but this is no way a hard one to work around.
What I cannot figure out is how to keep the quicktime plugin and still force tiffs to be downloaded instead of displayed by quicktime, though.
If you liked that feature you might want to try some of these too: http://www.geocities.com/pratiksolanki/. For example, you might want to enable the feature for Windows too.
Really? How about getting a gig or two of memory and copying the whole system to ramdrive during startup? The copying will take something like 30s so it even boots faster than that above mentioned cooler setup. Guess if loading an application from memory is faster than loading it from disk? Of couse, if all you do is scientific calculations and you're CPU bound then it doesn't help, but in that case you probably would need more than 256MB to boot and money is better spent in SMP box anyway...
But nobody can explain why... Mozilla works better usually. Some of the nightly builds during last week have been awful, though.
char *foo, bar;
IMO, the syntax used to define two pointers on a single line in the C is broken. I'd guess that it's a mistake in the original spec and simply hasn't been corrected because the fix would break some code.
Think about it, the real type is "char*" "bar" not "char" "*bar". This can be easily demonstrated with the type casting syntax: you write "(char*)(foo)" instead of (char)(*foo) -- and notice how those mean different things. I always write "char* foo;" and define only one pointer per line. I define loop counters like i, j, k, m and n on a single line, though.
It sounds like we're going into right direction already. According to article "in mating problems [...] the computer is already superior to the best players." Need I say more?
In addition, unlike Opera, optimoz users are able to define which gesture does what. Simply edit bin\chrome\mozgest\content\gestimp.js under the Mozilla installation directory and change it as you like. For example, I have "D" (down) binded to nextTab() and "U" (up) binded to previousTab(). Adding new actions is easy too because support for gestures implemented in pure javascript.