I went back to school in a computer science graduate program after two years in industry working as primarily a developer. My circumstances were perhaps a little different than yours. The place I had been working had an affinity for death march projects, and half the staff had quit over the course of a year. I was looking for an exit and took a graduate school opportunity when it came up.
My immediate academic goal in going back to graduate school was to study applied software development and squeeze in some business classes when possible. Having had a few bad experiences in the corporate world, my longterm goal was to learn stuff to help me start my own software development business or find a nice job working in a non-profit (eg the university). The thinking here was that I would either work like a slave for myself or work at a reasonable pace doing work that was morally fulfilling.
Within a few quarters back at school, I found that I really wasn't getting what I wanted out of the computer science program. The masters program had a lot of content on theoretical subjects like Axiomatic Semantics and Non Deterministic turing machines. The content that did seem vaguely practical like computer hardware architecture wasn't practical to me. I was more interested in studying things like program analysis, application frameworks, interface design, and development methodologies in a practical context. The school offered some of these subjects via the computer science program, but in general, I found myself pursuing independent studies and courses outside of the program. Eventually, I left the program entirely and was hired on fulltime by the department where I'd worked as a graduate assistant.
In terms of general observations...I found it difficult to get into the swing of traditional academics. This can manifest itself in a variety of forms.
First, working in industry, I was very used to working on projects and it took awhile to get adjusted back to the notion of being graded on 48 minute exams. To this end, you might find it beneficial to schedule a few project classes first term. Be careful about this though because college project classes are at least twice as much work as normal ones. I think they're also harder than normal professional work in groups because the groups are randomly formed, with no preconceived notion of domain expertise or compartmentalized responsibility... sometimes the assignments are kinda vague too because there is rarely a customer defining requirements.
Secondly, having experience in my career, I found it much more difficult to accept the relevance of the material being taught. For example, in one class we spent a week or two talking about crap like infinitely countable sets. Working in a fast paced environment for several years kind of trains you to filter out noise. If you don't think infinitely countable sets are relevant to your goals/work, it will be harder to wade through the material. This kind of motivational/attention span problem was my biggest issue.
Lastly, I think the world of computer science academics is somewhat notorious for reinventing the wheel as an excercise. It can be somewhat frustrating dealing with limited resources, specific languages, no libraries, not being aloud to use stuff from online, etc. This is not too big a deal.
Overall, I'm glad I went back to school. Because I did my own thing, I mostly got what I wanted out of the experience. That didn't include a degree, but that was never actually important to me.
to establish myself on some decent level or another as a well-rounded, (mostly) standards-based web designer with some backroom web development knowhow. The problem is I have no clue where to begin. HTML, CSS, JavaScript are an obvious start
This is just an opinion, but it would seem to me that if you don't already know a big chunk of html, css, and some kind of scripting language, you're not really in a position to decide that web designer/developer is the right career. Get some experience. Find out if you like it. Then start planning how to enter a career.
As for web technologies, especially on the developer side, be prepared to enter a never ending learning cycle. There are tons of different standards and technologies out there that all have to do with presentation on the web. Many of them are in flux.
As for what a person should learn first... the plethora of technologies makes that an open question depending on what kind of projects you are working on. On the bright side, learning any kind of web programming will move you closer to your goals. Some tips:
* Target rising technologies like PHP.
* Avoid obsolete stuff like ASP.
* Avoid anything that is "company XYZ's blah". For example, Macromedia ColdFusion.
* If you are not a developer, avoid complicated platforms like J2EE or ASP.NET. Simpler scripted languages like PHP or (shudder) ASP will be easier to get going productively.
Also, I don't know what kind of background you are coming from, but you should realize that good web design requires a strong design background. It has little to do with languages. Being from the other (developer) side of the pond, I've found books like Steve Krug's Don't Make me Think and Robin William's Non-Designer's Design Book to be quite valuable and easy to read.
Give me the strength to change the things I can. The courage to accept the things that I cannot. And the wisdom to know the difference.
There's only so much you can do in a situation like that. Give them the reasonable to semi-reasonable things they want and try to protect them without getting in their way. Most importantly, don't be adversarial with these guys unless someone is a big problem and it is clear to users and staff alike that the person is a problem.
One potential problem is that consoles are by far the largest market for these things. The question becomes how does an average joe get that kind of data file to a game. Consoles, even the xbox, aren't exactly known for interoperability.
What's really important is that the password draw from different kinds of characters. By including upper and lower case and numbers, you've already got significant potential for complexity.
Also, whether or not symbols are harder to remember than capitalization and numbers is very much dependent on the person and password. Consider whether or not the following uses of symbols are at all unintuitive.
WestWing@9
Db,cfwu. (movie quote: Dogs barking,can't fly without umbrella.)
wvl<WVL (Lesser of two Weevils)
Our school has currently provided wireless internet, course management software (Blackboard), personal web space for students, the ability to register classes online, and some more tech features.
It sounds like you are looking for the next big thing. Don't. Instead encourage the university to improve existing systems and processes. For example, consider how students use the online system to register for classes.
At my own university, we have many problems with the registration process. First, virtually every aspect of the process is treated as an independent system. You can not add classes from the same interface that lists descriptions of the classes. You can't view the number of open seats in a class from the signup page. Course descriptions are notoriously vague and inaccurate. This is all just the tip of the ice berg. I don't know if your registration process is as bad as ours, but I would guess there are plenty of technology systems at your university that could similarly stand for improvement.
Part of the fundamental problem in identifying systems that need improvement is that no one ever solicits student (or even faculty/staff) feedback. Sometimes it may be common knowledge that the registration system sucks, but no one ever tells the people responsible for it why it sucks, or how it can be improved. The end result is that people in university offices spend all their time working on the needs of others in nearby offices (the people who express their needs most readily) regardless of whether or not that fits the mandate. Where I work we literally spend weeks preparing an anual report that has little benefit to 99% of the people we serve.
If you did want to create a next-big-thing kind of university initiative, consider partnering with your communications/web standards department to add some kind of interactive feedback mechanism to all online systems. For an idea of how this might work, consider opine-it. Basically, imagine a system where every page or system has a corresponding message board that can be accessed directly from a "comment on this page" link.
I see some people talking about bit torrent like networks for rss feeds. Really, why not just zip it. If it were normal text, I'd expect to shrink file size down to 10% but we're talking about XML which has a lot more redundancy.
I've only heard bad things about them as well, but on the other hand they are broadband... albeit from what I understand very crappy, unreliable, and slow broadband.
I think given the choice, I'd probably rather have crappy broadband than awesome dialup. Of course, many of the things I do are either bandwidth intensive or need low ping connections... others still require perpetual or scheduled access to the net. Maybe some people with different usage patterns would prefer good dial up.
People are not going to continue to pay $23.90/mon. when they can get DSL for a couple dollars more
In my hometown (Dayton, Ohio), SBC/Yahoo has been advertising DSL for $20/month for the first year. I think that's finally drilling the point home to my mum, an aol user.
Don't get me wrong. I actually do think AOL provides a valuable service for novice computer users. However, it quickly reaches a point where the training wheels have got to come off... otherwise their just slowing you down.
Political reasons aside, we are at the stage of the adoption of computer based voting technology where the discovery of fraud could be a good thing.
There are some classes of applications, more broadly of systems, where a very high value is placed on security. I think our current voting systems do not place nearly enough emphasis on the integrity of the system. Therefore, discovery of wide scale fraud would be a good thing because it will force people to place a stronger emphasis on security.
The worst thing that can happen would be for precincts all over the US to dish out big bucks for 1.0 level voting technology and then have to use it for the next 15 years to justify the costs. Better to expose the problems now than to commit to an unproven voting infrastructure.
If we don't identify voter fraud, then people will assume it doesn't exist. Ironically, most of the found cases of errors so far have been caught within the overall voting system. This particular allegation is interesting because it alleges an uncaught error. This is the kind of thing that really demonstrates system failure, and it's the kind of thing we need to come out now if we are going to have a trustworthy electronic voting infrastructure in the future.
Whoa there. Since when has firefox been known for (good) security? I mean, maybe when compared to Internet Explorer and taking into account it's relative obscurity in the market and low profile as a target. But seriously, there have been lots of firefox vulnerabilities in recent months. Furthermore, they're only now beginning to get a functional auto-update system in place to address vulnerabilities as they come up.
I got a call the day that started off... Hello, this is bob with your local tele-... And that's as far as I let him go before hanging up. What is disturbing about this is that it was theoretically possible he had something important to tell me about my service, but I had been thoroughly trained to immediately hang up on all telephone calls from any telephone company, particularly my own.
I love using code generation. About 9 months ago, I wrote an object oriented data access layer generator for.net. The code it made was somewhat messy, but the interfaces were clean, and it saved me a lot of time. Even more importantly, all of the manually written code was much more readable as a result of the extremely standard OO data access libraries. I heard the next version of.net was supposed to come with some kind of code generation for data access layers in the standard tools.
About four months ago, I discovered PHP/Pear's DB_DataObject which is pretty cool. It is missing some features I had in mine, but it makes up for it by being incredibly easy to use. Now I've set up a protected page on our website at work that allows anyone to regenerate the entire data access layer at the click of a button. I hardly ever have to write sql and, more importantly, it makes things much easier on the programming light-weights.
And no, this doesn't mean I want full web browser support in my already bloated IDE. Text and maybe hyperlinks are good enough.
Heh, I do. Considering the massive amount of resources these IDEs already take up and the massive amount of resources that are increasingly available, it probably wouldn't put much of a dent in things and it would let you add all sorts of markup to make the inline documentation more readable.
At least allow for the use of different font styles and images. I mean, sometimes a diagram is worth a thousand words and sometimes a thousand words is pretty much worthless.
Why non-Java IDEs haven't caught up, I don't know.
I think Java hit the academics by storm. It is probably the favorite language out there for static (and dynamic) analysis. Some folks out there are looking at.net but for all intents and purposes,.net came too late.
For an example of the kind of stuff I'm talking about, check out the really cool soot framework.
Why does Eclipse have "more potential" than Visual Studio? That's a fairly broad statement without much backup. Just because it's open source, doesn't make it "da bomb"...
In my opinion, open source projects become "da bomb" when they hit critical mass. For example, perl isn't great because you can write de-css in 8 lines, it's great because of all the free libraries available through cpan.
The obstacle that Visual Studio faces is that the culture of microsoft enabled development is biased towards commercial add-ons. Put another way, it seems like almost everything I could possibly want in php or perl is free while I have to pay for much of the same stuff in dot net. This isn't to say there aren't a few gems out there for.net because there are (nspring, nunit for example). It's just that I think free tools are easier to find on other platforms.
Some might argue that there are a huge number of tools available for dot net and visual studio if you are just willing to dish out the cash. However, in most development environments, tools with a price tag get shot down immediately. They've got not-invented-here working against them. If you suggest something and it sucks, then you're to blame, and you've had to involve 12 different people to requisition a $30 piece of software.
So how does this apply to Eclipse versus Visual Studio? Eclipse seems to be designed to be an extensible IDE. There are tons of eclipse add-ons out there. They are almost all free. And people are writing more and more all the time. In addition, the academic community has embraced java and a renewed interests in practical research is leading academics to create all sorts of neat things like static analysis tools for eclipse.
Visual Studio is designed to be an IDE for rapid development in.net and, in particular, net enabled applications. I don't think it has as friendly an extension framework. I rarely see any nice free add-ons for visual studio. The academic community has not embraced.net like they have Java. In fact many at my university actively shun anything microsoft.
So basically, I think the community effect gives Eclipse a very high future potential. However, as indicated in this thread, I think Visual Studio.net is a much better environment here and now, for the kind of software development for which it was designed.
I really hope so. Because of it's general purpose nature, its cost, and its community, Eclipse has far more potential than visual studio. If it was as easy to use and setup for serveral primary tasks, then it would truly be a thing of awe.
I have just been hired as the webmaster for local college.
This is your problem right here. If your predecessor did not have root access, you are going to have to prove to the admin that he should give it to you. Even if your predecessor did have root access, the sys admin may not be inclined to hand out root privileges to anyone with the title of webmaster.
Just to give you some background, I work in a small college department, and I've got about three times as much access now as when I started 18 months ago (sometimes I wish I didn't). The secret is to be patient, work with the admins, and prove yourself over time. Also, help them out whenever you can (but only if you can). It's not in your interests to get in a power struggle with them.
Consider pursuing projects that will benefit everyone in the value chain. For example, a lot of people use write only memory for their web logs. Perhaps you could implement some kind of log analysis tool, that could:
1) Help the admin/you monitor attacks and load.
2) Help you/content providers monitor page usage and user demographics.
Maybe you could use something like AWStats. A project like this will give you an opportunity to work closely with the admin, demonstrating both your expertise, and your ability to add value.
Ooh - sorry for responding to myself but I thought up another. It might be nice if there was more security/workflow in a version control system.
One simple example of security might be something simple like - you do not have permission to edit this file. I bet this can already be accomplished with file system permissions and what have you.
But what would be even better would be for the environment to support basic workflow style processes. For example, if Bob is the expert on the Data Access Layer, and you make some changes and check them in, Bob should receive a notification with a note from you and perhaps and automagically generated report detailing what interfaces changed. This same kind of tactic has been employed on some wiki's to reduce vandalism. It could also be implemented as an approval process.
Moving along in that workflow direction, it also might be nice if the development environment was formally aware of the to-do list. In other words, if we bring in more version control functionality, why not add project management integration.
You might start the day by opening a task. Then you edit several files accomplishing the task. The changes you made in the version control system become associated with the task as do a record of the files that were changed. If someone else needs to see what changes you made for a particular task or bug or project, they can drill down from the top instead of trying to figure out what you did by looking at comments in version control.
I would be interested in seeing better version control integration in development environments. In a traditional approach we have several distinct tools. There is usually a repository with a version browser, a diff viewer, and a your development environment.
If you want to see a the previous version, you often have to switch to your repository tools. If you want to see comments submited with a version, you have to go to the repository tools. If you want to compare the previous version to the current, you have to switch to your diff viewer. When you are back to development, you switch to the IDE editor mode.
I'd like to see an IDE completely integrated with version control and language commenting features. For example, the story of a file should be part of the program file document. It shouldn't reside in a version control database. If you want to see differences between the code your looking at and a previous version, you ought to be able to just right click and have the changed code show up a different color right in your editor.
Perhaps unrelated to cvs, I'd also like to see better association of comments to sections of code. As things get copied and pasted around, it is not uncommon for comments to become disassociated from relevant code. You might find yourself asking, what section of code does this comment cover: the whole file, this function, this loop, this line? If comments were formally associated with code regions (vs feature), it would define a scope for the comment. You also might find yourself looking at the code and the comment and trying to reconcile conflicting information. It might be useful to be able to view what the code for the region looked like when the comment was originally written (more cvs integration).
I'd also like to see better integration of development tools with version and development environments. For example, it should be easy to set up a version control system to run a style checker, compile code, and perform regression testing. When it encounters problems it should be able to determine (basically) what they are, when they were introducedm, and by who. You should also have the option of setting more pre-check in checks. Bits and pieces of this kind of solution exist (like Java's checkstyle), but setting up the environment to do everything is very unfun.
As a natural extension of the whole line of commenting, I'd like to see comments move more from a language feature to a program document feature. For example, if I add a change log entry to a function header, I don't want to just copy the text above and type everything freeform. I want it to be more like I'm adding a response to a message board. The IDE maintains the comments in some internal representation, it prompts me for the requisite information using some kind of unobtrusive form. It automatically identifies things like the date and the user. If my change log is a response to someone else's comment, the comment appears as a thread, etc....
Don't think of them as crutches, think of them as enablers. If the environment is well designed, the benefits of a technology that enables more people to do a particular task will almost always outweigh the costs.
For example, if the environment is generating weird problems when interfacing with cvs and it's hard to figure out what's wrong, then there are two problems. First, the environment is apparently difficult to integrate with cvs (this was my experience with eclipse). Second, when a problem occurs, the environment is not giving the user the requisite information to solve the problem.
Shrug, even with these kinds of design problems, the benefits will still outweigh the costs for many people... and the technology will only get better.
Eclipse works reasonably well as a java ide. It is not nearly so capable with the other language environments it "supports". For example, when I tried out the Cobol support last year, I don't think it was much more than syntax highlighting. Some of the others like PHP still seem pretty experimental and unrefined.
I've used Visual Studio 6 and.net variants quite a bit. I've also made some fairly serious attempts to do work in eclipse in a variety of languages including java, php, and perl, but mostly java. From my experience, Visual Studio.NET absolutely blows eclipse out of the water. Before I continue, let me say I admit a strong level of bias because all my VS work has been supported by a work environment while everything in eclipse has been me struggling solo.
I think the crucial difference between Visual Studio and Eclipse is that Visual Studio tries to do certain things very well out of the box while Eclipse is attempting to slowly crawl toward perfection in all directions via extensions and manual interoperability. For example, when you install Visual Studio, your compiler is included. You don't need to install a separate runtime, setup your class path, or configure a big list of plugins. When you set up a web project, you don't have to do much in order to start debugging it. Everything just sort of works. It's part of the benefit of a homogeneous system, and for all intents and purposes, Visual Studio.net is designed to help you write data driven web applications in.net. With eclipse, all of that configuration is a major pain.
Also, I find that eclipse is much much slower than Visual Studio, especially with respect to features like intellisense. I also find the general purpose perspectives system to be somewhat confusing. Also, most of the libraries one might use from eclipse do not have the same level of code hints (the stuff that pops up when you type) that.net libraries have.
This is exactly what happened at the last company I worked for. They went through a hiring phase where a policy of the parent company preferred US citizens over H1Bs. Several citizens were hired and it turned out we were expected to work 50 hour weeks in lulls. When a project came along we were working 12 hour days plus frequent weekends. The US citizens became very, shall we say, disgruntled. The H1B's were already unhappy, but I think the vocalness of the citizens may have riled them up more than they might have otherwise been. Anyways, I quit around 7 months in. Everyone else who could quit did within a few months on either side of me. Even one of the H1B's quit. The company lost over half the department that way.
But to answer your question, IT workers aren't exempt for any of the reasons you might think. They are exempt because they are usually salaried and make far more than the minimum amount required for salaried workers to be exempt. I, uh, did some research and contacted the state department of labor. I had thought the exemption was $250/week, but now I'm seeing sources that put it elsewhere. Anyways, it is low for salaried workers. Read here for more details.
For non-salaried IT staff, there's some clause that got added to the Fair Labor Standard Act many years ago that put us into a professional category that allows us to be exempt. IMO - for what I do it's a justified classification when compared to the other job types in the group. The exact wording might be a little to broad/vague, including things like tech support, it's been a while since I read it.
I went back to school in a computer science graduate program after two years in industry working as primarily a developer. My circumstances were perhaps a little different than yours. The place I had been working had an affinity for death march projects, and half the staff had quit over the course of a year. I was looking for an exit and took a graduate school opportunity when it came up.
My immediate academic goal in going back to graduate school was to study applied software development and squeeze in some business classes when possible. Having had a few bad experiences in the corporate world, my longterm goal was to learn stuff to help me start my own software development business or find a nice job working in a non-profit (eg the university). The thinking here was that I would either work like a slave for myself or work at a reasonable pace doing work that was morally fulfilling.
Within a few quarters back at school, I found that I really wasn't getting what I wanted out of the computer science program. The masters program had a lot of content on theoretical subjects like Axiomatic Semantics and Non Deterministic turing machines. The content that did seem vaguely practical like computer hardware architecture wasn't practical to me. I was more interested in studying things like program analysis, application frameworks, interface design, and development methodologies in a practical context. The school offered some of these subjects via the computer science program, but in general, I found myself pursuing independent studies and courses outside of the program. Eventually, I left the program entirely and was hired on fulltime by the department where I'd worked as a graduate assistant.
In terms of general observations...I found it difficult to get into the swing of traditional academics. This can manifest itself in a variety of forms.
First, working in industry, I was very used to working on projects and it took awhile to get adjusted back to the notion of being graded on 48 minute exams. To this end, you might find it beneficial to schedule a few project classes first term. Be careful about this though because college project classes are at least twice as much work as normal ones. I think they're also harder than normal professional work in groups because the groups are randomly formed, with no preconceived notion of domain expertise or compartmentalized responsibility... sometimes the assignments are kinda vague too because there is rarely a customer defining requirements.
Secondly, having experience in my career, I found it much more difficult to accept the relevance of the material being taught. For example, in one class we spent a week or two talking about crap like infinitely countable sets. Working in a fast paced environment for several years kind of trains you to filter out noise. If you don't think infinitely countable sets are relevant to your goals/work, it will be harder to wade through the material. This kind of motivational/attention span problem was my biggest issue.
Lastly, I think the world of computer science academics is somewhat notorious for reinventing the wheel as an excercise. It can be somewhat frustrating dealing with limited resources, specific languages, no libraries, not being aloud to use stuff from online, etc. This is not too big a deal.
Overall, I'm glad I went back to school. Because I did my own thing, I mostly got what I wanted out of the experience. That didn't include a degree, but that was never actually important to me.
to establish myself on some decent level or another as a well-rounded, (mostly) standards-based web designer with some backroom web development knowhow. The problem is I have no clue where to begin. HTML, CSS, JavaScript are an obvious start
This is just an opinion, but it would seem to me that if you don't already know a big chunk of html, css, and some kind of scripting language, you're not really in a position to decide that web designer/developer is the right career. Get some experience. Find out if you like it. Then start planning how to enter a career.
As for web technologies, especially on the developer side, be prepared to enter a never ending learning cycle. There are tons of different standards and technologies out there that all have to do with presentation on the web. Many of them are in flux.
As for what a person should learn first... the plethora of technologies makes that an open question depending on what kind of projects you are working on. On the bright side, learning any kind of web programming will move you closer to your goals. Some tips:
* Target rising technologies like PHP.
* Avoid obsolete stuff like ASP.
* Avoid anything that is "company XYZ's blah". For example, Macromedia ColdFusion.
* If you are not a developer, avoid complicated platforms like J2EE or ASP.NET. Simpler scripted languages like PHP or (shudder) ASP will be easier to get going productively.
Also, I don't know what kind of background you are coming from, but you should realize that good web design requires a strong design background. It has little to do with languages. Being from the other (developer) side of the pond, I've found books like Steve Krug's Don't Make me Think and Robin William's Non-Designer's Design Book to be quite valuable and easy to read.
Give me the strength to change the things I can. The courage to accept the things that I cannot. And the wisdom to know the difference.
There's only so much you can do in a situation like that. Give them the reasonable to semi-reasonable things they want and try to protect them without getting in their way. Most importantly, don't be adversarial with these guys unless someone is a big problem and it is clear to users and staff alike that the person is a problem.
One potential problem is that consoles are by far the largest market for these things. The question becomes how does an average joe get that kind of data file to a game. Consoles, even the xbox, aren't exactly known for interoperability.
What's really important is that the password draw from different kinds of characters. By including upper and lower case and numbers, you've already got significant potential for complexity.
Also, whether or not symbols are harder to remember than capitalization and numbers is very much dependent on the person and password. Consider whether or not the following uses of symbols are at all unintuitive.
WestWing@9
Db,cfwu. (movie quote: Dogs barking, can't fly without umbrella.)
wvl<WVL (Lesser of two Weevils)
Our school has currently provided wireless internet, course management software (Blackboard), personal web space for students, the ability to register classes online, and some more tech features.
It sounds like you are looking for the next big thing. Don't. Instead encourage the university to improve existing systems and processes. For example, consider how students use the online system to register for classes.
At my own university, we have many problems with the registration process. First, virtually every aspect of the process is treated as an independent system. You can not add classes from the same interface that lists descriptions of the classes. You can't view the number of open seats in a class from the signup page. Course descriptions are notoriously vague and inaccurate. This is all just the tip of the ice berg. I don't know if your registration process is as bad as ours, but I would guess there are plenty of technology systems at your university that could similarly stand for improvement.
Part of the fundamental problem in identifying systems that need improvement is that no one ever solicits student (or even faculty/staff) feedback. Sometimes it may be common knowledge that the registration system sucks, but no one ever tells the people responsible for it why it sucks, or how it can be improved. The end result is that people in university offices spend all their time working on the needs of others in nearby offices (the people who express their needs most readily) regardless of whether or not that fits the mandate. Where I work we literally spend weeks preparing an anual report that has little benefit to 99% of the people we serve.
If you did want to create a next-big-thing kind of university initiative, consider partnering with your communications/web standards department to add some kind of interactive feedback mechanism to all online systems. For an idea of how this might work, consider opine-it. Basically, imagine a system where every page or system has a corresponding message board that can be accessed directly from a "comment on this page" link.
I see some people talking about bit torrent like networks for rss feeds. Really, why not just zip it. If it were normal text, I'd expect to shrink file size down to 10% but we're talking about XML which has a lot more redundancy.
I've only heard bad things about them as well, but on the other hand they are broadband... albeit from what I understand very crappy, unreliable, and slow broadband.
I think given the choice, I'd probably rather have crappy broadband than awesome dialup. Of course, many of the things I do are either bandwidth intensive or need low ping connections... others still require perpetual or scheduled access to the net. Maybe some people with different usage patterns would prefer good dial up.
People are not going to continue to pay $23.90/mon. when they can get DSL for a couple dollars more
In my hometown (Dayton, Ohio), SBC/Yahoo has been advertising DSL for $20/month for the first year. I think that's finally drilling the point home to my mum, an aol user.
Don't get me wrong. I actually do think AOL provides a valuable service for novice computer users. However, it quickly reaches a point where the training wheels have got to come off... otherwise their just slowing you down.
Political reasons aside, we are at the stage of the adoption of computer based voting technology where the discovery of fraud could be a good thing.
There are some classes of applications, more broadly of systems, where a very high value is placed on security. I think our current voting systems do not place nearly enough emphasis on the integrity of the system. Therefore, discovery of wide scale fraud would be a good thing because it will force people to place a stronger emphasis on security.
The worst thing that can happen would be for precincts all over the US to dish out big bucks for 1.0 level voting technology and then have to use it for the next 15 years to justify the costs. Better to expose the problems now than to commit to an unproven voting infrastructure.
If we don't identify voter fraud, then people will assume it doesn't exist. Ironically, most of the found cases of errors so far have been caught within the overall voting system. This particular allegation is interesting because it alleges an uncaught error. This is the kind of thing that really demonstrates system failure, and it's the kind of thing we need to come out now if we are going to have a trustworthy electronic voting infrastructure in the future.
Let's take Firefox - known for it's security
Whoa there. Since when has firefox been known for (good) security? I mean, maybe when compared to Internet Explorer and taking into account it's relative obscurity in the market and low profile as a target. But seriously, there have been lots of firefox vulnerabilities in recent months. Furthermore, they're only now beginning to get a functional auto-update system in place to address vulnerabilities as they come up.
I got a call the day that started off... Hello, this is bob with your local tele-... And that's as far as I let him go before hanging up. What is disturbing about this is that it was theoretically possible he had something important to tell me about my service, but I had been thoroughly trained to immediately hang up on all telephone calls from any telephone company, particularly my own.
I love using code generation. About 9 months ago, I wrote an object oriented data access layer generator for .net. The code it made was somewhat messy, but the interfaces were clean, and it saved me a lot of time. Even more importantly, all of the manually written code was much more readable as a result of the extremely standard OO data access libraries. I heard the next version of .net was supposed to come with some kind of code generation for data access layers in the standard tools.
About four months ago, I discovered PHP/Pear's DB_DataObject which is pretty cool. It is missing some features I had in mine, but it makes up for it by being incredibly easy to use. Now I've set up a protected page on our website at work that allows anyone to regenerate the entire data access layer at the click of a button. I hardly ever have to write sql and, more importantly, it makes things much easier on the programming light-weights.
You just blew my mind. Is someone working on something like this? Where can I find it?
And no, this doesn't mean I want full web browser support in my already bloated IDE. Text and maybe hyperlinks are good enough.
Heh, I do. Considering the massive amount of resources these IDEs already take up and the massive amount of resources that are increasingly available, it probably wouldn't put much of a dent in things and it would let you add all sorts of markup to make the inline documentation more readable.
At least allow for the use of different font styles and images. I mean, sometimes a diagram is worth a thousand words and sometimes a thousand words is pretty much worthless.
Why non-Java IDEs haven't caught up, I don't know. I think Java hit the academics by storm. It is probably the favorite language out there for static (and dynamic) analysis. Some folks out there are looking at .net but for all intents and purposes, .net came too late.
For an example of the kind of stuff I'm talking about, check out the really cool soot framework.
Why does Eclipse have "more potential" than Visual Studio? That's a fairly broad statement without much backup. Just because it's open source, doesn't make it "da bomb"...
.net because there are (nspring, nunit for example). It's just that I think free tools are easier to find on other platforms.
.net and, in particular, net enabled applications. I don't think it has as friendly an extension framework. I rarely see any nice free add-ons for visual studio. The academic community has not embraced .net like they have Java. In fact many at my university actively shun anything microsoft.
.net is a much better environment here and now, for the kind of software development for which it was designed.
In my opinion, open source projects become "da bomb" when they hit critical mass. For example, perl isn't great because you can write de-css in 8 lines, it's great because of all the free libraries available through cpan.
The obstacle that Visual Studio faces is that the culture of microsoft enabled development is biased towards commercial add-ons. Put another way, it seems like almost everything I could possibly want in php or perl is free while I have to pay for much of the same stuff in dot net. This isn't to say there aren't a few gems out there for
Some might argue that there are a huge number of tools available for dot net and visual studio if you are just willing to dish out the cash. However, in most development environments, tools with a price tag get shot down immediately. They've got not-invented-here working against them. If you suggest something and it sucks, then you're to blame, and you've had to involve 12 different people to requisition a $30 piece of software.
So how does this apply to Eclipse versus Visual Studio? Eclipse seems to be designed to be an extensible IDE. There are tons of eclipse add-ons out there. They are almost all free. And people are writing more and more all the time. In addition, the academic community has embraced java and a renewed interests in practical research is leading academics to create all sorts of neat things like static analysis tools for eclipse.
Visual Studio is designed to be an IDE for rapid development in
So basically, I think the community effect gives Eclipse a very high future potential. However, as indicated in this thread, I think Visual Studio
I really hope so. Because of it's general purpose nature, its cost, and its community, Eclipse has far more potential than visual studio. If it was as easy to use and setup for serveral primary tasks, then it would truly be a thing of awe.
I have just been hired as the webmaster for local college.
This is your problem right here. If your predecessor did not have root access, you are going to have to prove to the admin that he should give it to you. Even if your predecessor did have root access, the sys admin may not be inclined to hand out root privileges to anyone with the title of webmaster.
Just to give you some background, I work in a small college department, and I've got about three times as much access now as when I started 18 months ago (sometimes I wish I didn't). The secret is to be patient, work with the admins, and prove yourself over time. Also, help them out whenever you can (but only if you can). It's not in your interests to get in a power struggle with them.
Consider pursuing projects that will benefit everyone in the value chain. For example, a lot of people use write only memory for their web logs. Perhaps you could implement some kind of log analysis tool, that could:
1) Help the admin/you monitor attacks and load.
2) Help you/content providers monitor page usage and user demographics.
Maybe you could use something like AWStats. A project like this will give you an opportunity to work closely with the admin, demonstrating both your expertise, and your ability to add value.
Ooh - sorry for responding to myself but I thought up another. It might be nice if there was more security/workflow in a version control system.
One simple example of security might be something simple like - you do not have permission to edit this file. I bet this can already be accomplished with file system permissions and what have you.
But what would be even better would be for the environment to support basic workflow style processes. For example, if Bob is the expert on the Data Access Layer, and you make some changes and check them in, Bob should receive a notification with a note from you and perhaps and automagically generated report detailing what interfaces changed. This same kind of tactic has been employed on some wiki's to reduce vandalism. It could also be implemented as an approval process.
Moving along in that workflow direction, it also might be nice if the development environment was formally aware of the to-do list. In other words, if we bring in more version control functionality, why not add project management integration.
You might start the day by opening a task. Then you edit several files accomplishing the task. The changes you made in the version control system become associated with the task as do a record of the files that were changed. If someone else needs to see what changes you made for a particular task or bug or project, they can drill down from the top instead of trying to figure out what you did by looking at comments in version control.
I would be interested in seeing better version control integration in development environments. In a traditional approach we have several distinct tools. There is usually a repository with a version browser, a diff viewer, and a your development environment.
If you want to see a the previous version, you often have to switch to your repository tools. If you want to see comments submited with a version, you have to go to the repository tools. If you want to compare the previous version to the current, you have to switch to your diff viewer. When you are back to development, you switch to the IDE editor mode.
I'd like to see an IDE completely integrated with version control and language commenting features. For example, the story of a file should be part of the program file document. It shouldn't reside in a version control database. If you want to see differences between the code your looking at and a previous version, you ought to be able to just right click and have the changed code show up a different color right in your editor.
Perhaps unrelated to cvs, I'd also like to see better association of comments to sections of code. As things get copied and pasted around, it is not uncommon for comments to become disassociated from relevant code. You might find yourself asking, what section of code does this comment cover: the whole file, this function, this loop, this line? If comments were formally associated with code regions (vs feature), it would define a scope for the comment. You also might find yourself looking at the code and the comment and trying to reconcile conflicting information. It might be useful to be able to view what the code for the region looked like when the comment was originally written (more cvs integration).
I'd also like to see better integration of development tools with version and development environments. For example, it should be easy to set up a version control system to run a style checker, compile code, and perform regression testing. When it encounters problems it should be able to determine (basically) what they are, when they were introducedm, and by who. You should also have the option of setting more pre-check in checks. Bits and pieces of this kind of solution exist (like Java's checkstyle), but setting up the environment to do everything is very unfun.
As a natural extension of the whole line of commenting, I'd like to see comments move more from a language feature to a program document feature. For example, if I add a change log entry to a function header, I don't want to just copy the text above and type everything freeform. I want it to be more like I'm adding a response to a message board. The IDE maintains the comments in some internal representation, it prompts me for the requisite information using some kind of unobtrusive form. It automatically identifies things like the date and the user. If my change log is a response to someone else's comment, the comment appears as a thread, etc....
Don't think of them as crutches, think of them as enablers. If the environment is well designed, the benefits of a technology that enables more people to do a particular task will almost always outweigh the costs.
For example, if the environment is generating weird problems when interfacing with cvs and it's hard to figure out what's wrong, then there are two problems. First, the environment is apparently difficult to integrate with cvs (this was my experience with eclipse). Second, when a problem occurs, the environment is not giving the user the requisite information to solve the problem.
Shrug, even with these kinds of design problems, the benefits will still outweigh the costs for many people... and the technology will only get better.
Eclipse works reasonably well as a java ide. It is not nearly so capable with the other language environments it "supports". For example, when I tried out the Cobol support last year, I don't think it was much more than syntax highlighting. Some of the others like PHP still seem pretty experimental and unrefined.
I've used Visual Studio 6 and .net variants quite a bit. I've also made some fairly serious attempts to do work in eclipse in a variety of languages including java, php, and perl, but mostly java. From my experience, Visual Studio .NET absolutely blows eclipse out of the water. Before I continue, let me say I admit a strong level of bias because all my VS work has been supported by a work environment while everything in eclipse has been me struggling solo.
.net is designed to help you write data driven web applications in .net. With eclipse, all of that configuration is a major pain.
.net libraries have.
I think the crucial difference between Visual Studio and Eclipse is that Visual Studio tries to do certain things very well out of the box while Eclipse is attempting to slowly crawl toward perfection in all directions via extensions and manual interoperability. For example, when you install Visual Studio, your compiler is included. You don't need to install a separate runtime, setup your class path, or configure a big list of plugins. When you set up a web project, you don't have to do much in order to start debugging it. Everything just sort of works. It's part of the benefit of a homogeneous system, and for all intents and purposes, Visual Studio
Also, I find that eclipse is much much slower than Visual Studio, especially with respect to features like intellisense. I also find the general purpose perspectives system to be somewhat confusing. Also, most of the libraries one might use from eclipse do not have the same level of code hints (the stuff that pops up when you type) that
This is exactly what happened at the last company I worked for. They went through a hiring phase where a policy of the parent company preferred US citizens over H1Bs. Several citizens were hired and it turned out we were expected to work 50 hour weeks in lulls. When a project came along we were working 12 hour days plus frequent weekends. The US citizens became very, shall we say, disgruntled. The H1B's were already unhappy, but I think the vocalness of the citizens may have riled them up more than they might have otherwise been. Anyways, I quit around 7 months in. Everyone else who could quit did within a few months on either side of me. Even one of the H1B's quit. The company lost over half the department that way.
But to answer your question, IT workers aren't exempt for any of the reasons you might think. They are exempt because they are usually salaried and make far more than the minimum amount required for salaried workers to be exempt. I, uh, did some research and contacted the state department of labor. I had thought the exemption was $250/week, but now I'm seeing sources that put it elsewhere. Anyways, it is low for salaried workers. Read here for more details.
For non-salaried IT staff, there's some clause that got added to the Fair Labor Standard Act many years ago that put us into a professional category that allows us to be exempt. IMO - for what I do it's a justified classification when compared to the other job types in the group. The exact wording might be a little to broad/vague, including things like tech support, it's been a while since I read it.