Old School DEC VT05 Terminal. Neat design.
This new product from google that allows you to do consumer level surveys looks really interesting.
Hopefully this saves people some time and energy.
I have a Cisco / Linksys E2000 Wifi Access point. My son has an inexpensive PC connected directly to one of the ports on the back. We were trying to get a LAN game going. The game is called “Day of Defeat : Source, a Half-Life mod like Counter Strike. I’ll another post on that story later.
For some reason, we couldn’t get my Mac (on Wifi) to see the LAN game server he was running. The Steam app has a tab called “LAN Servers” and it kept reporting “There are no servers running on your local network.” I did a lot of searches on the internet and came up with nothing.
Finally, I had to put my tech hat on and start troubleshooting the IP layer between the machines. This took some time, but the solution was not obvious, and not too surprising given how these access points are developed.
I had to put the “Wireless > Basic Wireless Settings > Wireless Mode” into “Wireless-G Only”. This defeats the purpose of having an N router, but whatever.
As soon as I made that change, everything started working. The networks became connected. All of the IP diagnostics passed and the game server that he created showed up on my ‘LAN’ tab in steam.
There is no reason I can think of that this should have occurred other than there is some bug in the access point software.
I find myself using this all the time.
Amazon should have something like this on their site. Wikipedia too.
UPDATE: I didn’t click through on the links above. It turns out that I know Garrett from Plaxo, who cofounded HipChat with the other HipCal guys, which just got bought by Atlassian. The internet is a small place 🙂
I was just looking around at what the typical gamer PC would look like. I think it is amazing that you can by an 8-core processor for under $250. That is just absolutely amazing!
Then I took a look at RAM density on server systems over at the ole DELL site. There are many server systems with over 32 GB of RAM capacity at very reasonable rates. In fact they had systems that could hold over 100 GB of RAM. That is a game changer when it comes to thinking about how you architect certain systems.
AMD, is just a standard. So there are a few implementations. The current favorite AMD implementation is require.js. It is a clean project led by James Burke. The documentation is good and the project has a lot of visible support on the internet. Also, I’ve read some of his online interactions. It is tough to help out on an open source project and respond to criticism. However, James really handles it well. This is really important. Many online discussions drift towards negative behavior during technical debates.
Anyways, as I’m learning more about this and how these JS apps are being developed, I’m just struck at how their ‘new’ ideas are just rediscoveries. These are the same problems that early microcomputer devs had to deal with in the 1980s.
How does this tie to AMD loaders? Well, they missed a few of the lessons. They haven’t quite made the conceptual jump that they really need to manage memory. I’m not talking about malloc, I’m talking ‘module’ or code memory management. This may seem odd, because that is surely one of the intents they are addressing in the first place. I think it is because the browsers do not offer the capability to control this yet.
For example, in the early days of microcomputing, there was a popular system of the day called UCSD Pascal, or the UCSD p-system. It was a cool virtual machine implementation that emulated a 16 bit stack machine on just about any computer of the day. One thing that blew me away back then was the fact that even a few games were written in the system (Wizardry, Sundog, and a few others). The history and popularity of that system is the subject of another post. (Apple Pascal and How I learned Pascal)
One of the key attributes of the system was the concept of a ‘segment’ manager. This is the part that is relevant to this discussion. It managed what code was in memory at the given moment. Some other languages and systems had different names (overlay manager), but the concept was the same.
Here is how it worked:
Since machines in the late 70’s were just starting to have 64k total memory at that time, memory was a premium. At some point, some programs just needed more memory to solve the task for a portion of the program than a 64k system could provide. In order to run those programs, a code module manager was implemented in the p-system (segment manager). You could load or unload segments as needed for an application. For example, if you needed to switch to s apreadsheet from word processor mode, you would associate the code for the spreadsheet with a segment. If the user switched to spreadsheet mode and caused that code to run, the magic happened. The system would unload an unused segment from memory and then load the spreadsheet segment from disk and then execute it. Here is the interesting part. When you finished using that code, the system would automatically unload the code segment from memory so it could be used by another portion of the program. This system allowed people to finally write programs that were larger than the machines they used.
This was done in the early 1980s, yet, even today, this type of system is not common place. The segment manager was so important back then that it was replicated in the Mac Toolbox (which was originally in Pascal) until OS X. Almost all PC pascal implementations had it as well (Notably Turbo Pascal and Delphi). These systems did not appear in any of the ‘C’ based environments.
Eventually, the need for these was lessened as some of the functionality was replaced by dynamic loaders on unix or the DLL system on windows. Computers had lots and lots of memory for code. Still, the choice is not optimal today. For example, modern Unix or WinNT based kernels may un-associate part of a programs address space from physical RAM, but it still must maintain the book-keeping and page-tables for that code. If you look at the address space of a typical desktop program in memory, there are so many modules that this linking process can actually be responsible for the slow startup on todays ‘modern’ systems. The segment system was much cleaner and smaller.
Just recently I saw these two ad spots on Google.
I’m looking for directions to a coffee shop on Google Maps. Do I want to sign up for University of Phoenix? Really?
I saw a different ad before (non-google).. but this is an ad on a logout page.
Google generally has the highest standards in the industry for ad guidelines. Yet, both of these feel very ungoogly. I wouldn’t be surprised to see ads like this on Yahoo or AOL.
I think they are sliding. In fact, Paul Bucheit was the one who coined the “Don’t be evil” at Google and he hasn’t been there for many years. (I think he is part of Y-Combinator now.)