You know there was a time that Rock partly meant protest, something your parents didn't like, something that worried the government and politicians and that is what made it so appealing. So I guess when a few bands come out against the "man" that makes news today.
Man, I RTFA and I can't believe MS would spend so much time, money, and effort to try and manipulate an article about a freakin blog site or wtf ever channel 9 / 10 is. Funny and pathetic at the same time.
It won't be long before a couple of smart kids in a garage somewhere put together something that finally disrupts MS.... who knows maybe those guys are named Larry and Sergey, but they alreay moved out of the garage..
"So things like Ruby and PHP are really good for generating web pages. But as soon as you go beyond that, you get into trouble. And with so many enterprise applications, the web page is sort of the skin on the outside of the real application. And mostly scripting languages don't do the high-performance, large-scale computing very well."
If this is true, then Sun might as well ditch their efforts with JRuby because no matter how well it runs on the JVM it is only going to be good for generating web pages - and that is more than taken care of by JSP.
But maybe, just maybe, Ruby does something java doesn't - like enable a framework like Rails and make programming more productive and fun...
This has got to be one of the lamest things I have ever seen...
"We already have some ideas, of course. But as champions of free markets, we abhor the concept of a closed system. This is why we would like you to submit your idea by filling out the form at ProjectRedStripe.com. The deadline is March 25th, 2007."
They abhor closed systems? Why aren't they sharing any of their ideas?
"Your idea can be as simple or complex as you like. It could be a product, a service or a business model. Before you jot your idea down, think about how best to describe it (here are some hints for doing this). If you want to track our progress, please visit our blog, where we would love to hear from you."
Okay, I have two great ideas for you!
a) Online pet supplies for those on a budget.... ECONOPETS.COM
b) Online delivery service for those on a bugdget... ECONOVAN.COM......
I think contracts are one of those things that seems to make sense when they are applied to very simple example problems such as the oft used Account class with debit/credit/transfer methods.
The real test is whether the technique/methodology still makes sense when you are writing code on an actual project. Take test driven development, at first apply this can take some getting used to - for many (like myself) it is getting use to writing any tests at all!!!! But really, at its simplest TDD is asking you to do something that you should already be doing, only with more opinions on HOW and WHEN to do it. So it works.
Design By Contract on the other hand is something quite different. Firstly, for the most part we humans do not think in terms of contracts or pre/post conditions. We might use contracts for some things - contracts that most of us never read nor understand, I might add - but for the most part I think we operate by assumptions - we don't think about a list of pre conditions before doing something and then a list of post conditions after doing something...like they say at Nike - we Just Do It.. This is not to say that the pre/post conditions don't exist - they do - but we only notice them when their violation causes us some obvious consequence - like oops, my account is over drawn! So when a developer is writing code this same type of thinking is in operation.... I need to code a function that returns a loan payment amount for a given interest rate, loan term, and loan amount - I first think about the formula that calculates this and coding it in my favorite language... putting it in some class, giving it a good name, naming the parameters, implementing the function... I am just doing it!! I am NOT thinking about pre/post conditions such as "loan amount > zero" - So this is one reason, we just don't think this way.
Secondly, in real systems that much of the code just doesn't lend it self to being described by pre/post conditions.... Subscriptions.get_expired()... Seems pretty straightforward, get me a collection of expired Subscriptions...What kind of Contract would I use....
pre-conditions: Are there none? post-conditions: All returned subscriptions are expired.....hmmm seems to be stating the obvious....
No Vista in my crib...
on
Is Vista a Trap?
·
· Score: 2, Interesting
I just got this alert/email from my ISP - ATT&T...
"AT&T and Yahoo! have been working closely with Microsoft to update our familiar software applications to support the Vista operating system, including AT&T Yahoo! Instant Messenger, AT&T Yahoo! Photos, the AT&T Yahoo! Portal, and our Web-based e-mail service.
In this spirit, our teams will continue to work to deliver compatibility with other familiar applications which will be temporarily impacted for customers who upgrade to Vista, such as the AT&T Yahoo! Tool Bar, AT&T Yahoo! Browser and the AT&T Yahoo! Online Protection Suite. While our teams remain dedicated to restoring your ability to manage and customize the online protection suite on a Vista PC, we encourage you to learn more about the embedded Windows Security Center, part of the Vista operating system and similar to the AT&T Yahoo! Online Protection Suite, to help keep your PC up to date with the latest security patches and alerts."
TEMPORARY IMPACT...
RESTORING YOUR ABILITY...
WTF????
Why is my internet service being impacted by an upgrade to my OS?
First let me disclose I that I have worked with Java web apps using Kiva, JRun, ATG Dynamo, Tomcat, Websphere, Spring Framework, JSEE. I have also worked Perl+CGI, a smattering of cold fusion, plain old php, drupal, cakephp (rails like php framework). I am currently working on deploying a rails app.
So what is my take on Ruby/Rails?
Briefly here are the pros/cons as I see it:
pros:
1) Ruby feels good to program in. Like Perl,PHP, or LISP you can
layout data using the language itself. So unlike Java you don't
find yourself needing XML to configure everything.
2) Ruby is dynamic. Nothing new here. But this allows you to
"build up" the language to support your problem domain. Sure,
Java supports this to some degree, but it is much more
complex and verbose - where in Java you might need dynamic
byte code insertion in Ruby you just open up a class and "do it"
3) Rails was "extracted" from a real life web application - not designed
by a committee. The bottom line is that you find lots of support for
"things" you are likely going to want to do in your application. You find
that many of those "easy", "i can do it in a few hours/days" sort of things
have already been taken care of for you.
4) Rails is opinionated. It lays out your directory structure for you, It
likes you to obey certain naming conventions. What is good about this is that
a) you don't have to think about these things b) less experienced people get a
decent skeleton MVC architecture to work with.
Cons:
1) The Ruby libraries have no where near the depth or maturity of what you find
in Java. This is improving, but in a high stakes enterprise environment where
from one day to the next you never know what you might be asked to integrate with
this is definately a consideration.
2) Rails works best with new applications where you have control over the database.
If you can't control the database schema or it is already in place you can possibly
bend Rails to work for you...but trust me, there is no 15 minute screencast that is
going to hold your hand.
3) Rails is (by all indications) not a framework that caters
to enterprise users. You can take that however you like - this makes some people giddy -
For others it gives pause. See http://www.martinfowler.com/bliki/EnterpriseRails. html for
a perspective on this.
4) Ruby's runtime environment is evolving. Most people seem to agree that Ruby needs a VM (
these are under development). Also Sun has a few guys working JRuby - Ruby compiled down to
java bytecode. But these aren't production ready.
5) Rails uses the ActiveRecord pattern for ORM. In a nutshell, the further your domain objects
diverge from their representation in the database the more likely Rails is not going to work for you.
In the end, it comes down to selecting the right tools for the job. Where you have a new app, time to market is critical, and budget is small then Ruby/Rails can be a great tool. Where you have a complex domain, existing database, and the need to integrate with all sorts of exotic systems or middleware you might want to look elsewhere.
This could put a big chill on tourism. Even people with squeaky clean records will be uneasy - wondering if when they get ready to cross the border some error in the "data mining" system will prevent them entry. We all know how wonderfully accurate the US' Do Not Fly list is...
I can just imagine me+wife taking a week of vacation time, $$$ in flights/hotels, and getting to the border and denied entry due to an error in the system (or maybe something my wife has been meaning to tell me about but has been too embarrassed about:-))). You know...I really think this has changed the way I feel about travelling to Canada...there are alternatives...
I have similar concerns about security - that uneasy feeling about sending sensitive stuff over the net to a server controlled by someone else.
However, I wonder why Google or other providers don't consider supporting encryption of your data that is sent to them over https. It would still involve trusting google to encrypt your data and not save a plaintext copy somewhere. But I imagine that a good percentage of people would be willing to trust Google. Of course it would open up a whole can of complexity -- "I lost my key", "I want to share my encrypted data, with other trusted users...", government requesting back doors to decrypt the data, etc.
Another strategy might be a hybrid approach where your data can be stored locally and/or remotely... I know my PC can handle running a web server and database - so Google can provide a "Data Server" download that I install on my PC or home network, and then their server based Apps (html/javascript/css) can just address their servers or my local "Data Server"
Yet another strategy is for google to put together a "Google Box" that they sell very cheaply. This appliance gets plugged into my network and hosts my data and possibly their applications. The appliance can phone home to the google plex for software upgrades. They can still serve up ads by serving html from the Box that contacts Adwords or whatever. They can still control the Box. If they took it further they could route http requests to this Box so that I could access it when I am on the road. They could provide the option of letting me sync my data to their servers (back ups, better availabiity than my home network).
The key is that the browser + internet are the fundamental layers of abstraction that breaks our dependence on Microsoft/Apple and opens the door to competition. We all have browsers, we all have internet connections, many of us have home networks. Who is going to exploit this first? I think the next 5 years should be very interesting...
I downloaded the flex sdk. Unfortunately, I am running 64bit Linux - and I discovered Adobe has not released the needed Flash 9 software for this platform -:)
So I decided to do bit more reading...
1) MXML - I don't like coding in XML. PERIOD. Maybe the extent of it is laying out your widgets, but my experience is that even doing "simple" configuration with XML leads to migrains in short order.
2) Flex sdk may be free (as in beer) - but the Builder costs $499. This is a show stopper for many,many people. Even folks working in well funded shops usually "play" with new technologies on their own time and money and then convince management to make an investment. Sure maybe you can get by with just a text editor, I don't know. But it leaves a bad taste in my mouth - if I am going to commit to learning something new I want all the tools at the start.
3) Flex Data Services - "after 1 cpu you are considered an enterprise user, please contact adobe..." Don't forget your checkbook. Something tells me that if I wanted to do something interesting/complex involving a database I am going to have to pay. Likely another show stopper.
Google Apps are not going to replace Office any time soon.
1) A web based interface does not stack up to a native gui app.
2) Google Apps are not full featured.
3) Security. Shopping list on google servers - sure, why not.
My personal financial information - not a chance.
Corporate Data - You are kidding me, right?
4) Availability - no internet connection. no Google Apps.
It is generally not illegal for you to say just about anything that is true. But whether or not someone gave you notice is a question of fact. Can you prove that someone did not give you notice? Perhaps he/she gave you a verbal notice and you just didn't hear it. Maybe you didn't get the email. Maybe the letter got lost in the mail....
Are you ready to prove this in court? Are you willing to spend the $$ to prove it? If so, then please enjoy your rights. If not, then the best thing to do is simply confirm the persons' employment and leave it at that.
But as far as I know the legal concept of "At Will Employment" would seem to apply here - which basically means they can let you go at anytime, and you can leave at anytime.
My feeling is that who ever threatening you with a lawsuit was way out of bounds. If it were me I wouldn't lose any sleep over it or $$. If it is really bugging you perhaps you can find a lawyer to give you a 15 minute consultation gratis...call the local bar association referral and ring up a few lawyers and run it by them. I wouldn't send any money though!!!
I would just wait and see if they sue you. I really doubt it. Have a good weekend.
If a candidate isn't going to work out, that's the way it is.
But if you want to be a world class outfit make sure you always send a letter or make a phone call thanking the person for their time. Throw in some compliments and warm best wishes... etc.
If you don't extend this courtesy it is your company's reputation that gets hurt. People talk. It is a small world. Pretty soon, good candidates you would love to hire start coming in with negative perceptions of your company or worst yet, just don't come in at all.
As for playing with people - well, then my friend the problem isn't the candidate but you.
Start with the code. Download and install the "thing" that has you captivated. Spend some time doing a 30,000 foot reading of the code...you aren't trying to understand every line, just trying to get a sense of how the beast operates. Next, pick some feature/function of the app that has you asking/wondering.. "How does it do that?"....trace that feature in the code line by line as much as possible... until you understand it...maybe draw/diagram out any data structures/objects that seem to keep showing up every 2-3 statements. Use the internet / book stores to get articles books on subjects that will help you understand the application....After a while, you will find that you understand the code. You might even start to see design mistakes, even outright bugs...you submit a patch, then.........
An operating system is a resource manager. In the early days of the PC "resources" included memory, I/O devices, and CPU. With the rise of the GUI (Mac/windows 3.0,...) "resources" expanded to include the graphics libraries, toolkits, and hardware needed to implement the familiar windows+mouse interface.
Parallel to the evolution of the traditional OS the internet and world wide web came of age. Had MS foreseen the rise of the web I have no doubt they would have worked hard to maintain the dominance of the Windows OS by including management of Web resources in the core of the operating system. But as things turned out, Netscape beat them to the game by delivering the browser. However, the term browser is really too modest. A browser is really an operating system of sorts (running on top of a host OS) that manages web resources - resources that the underlying OS whether windows or Linux does not manage so well. The problem is that browsers, while quite good at managing http requests/responses, URIs, HTML, and users' interactions with w3eb servers are not so good at managing the resources needed by applications. So in the world of browsers web applications have little choice but to rely CSS, HTML, and Javascript. AJAX and related technologies have allowed web applications to compete better with native apps - but not nearly enough to supplant them any time soon.
One possible solution that I see is for the advent of a true Web Operating System (WOS?). The WOS would provide an abstraction layer over the native machine it is running on (think VMWare/Xen like) and provide a standard API for web based applications. The WOS could reserve and manage a portion of the resources of the underlying machine and ensure that web applications do not do nasty things like write to arbitrary memory addresses, etc.
So imagine that a bank would like to make available a home banking application over the web. This application would be a rich client application that allows disconnected operation. So you could be connected to the net, pay a few bills, download your account activity and then later when you have no connection you could still execute the app and maybe import the account activity into your spreadsheet and enter in a few more bill pay transactions to be sent to the bank the next time you are connected to the internet.
This is clearly not possible today using IE or Firefox. The only way this could be delivered today would be to code a native application that each user would need to download and install. This is not going to fly.
But imagine that your PC is running a WOS. You start up the WOS browser application, enter in the URL of your bank and authenticate and request that the Home Banking App be installed. The banks web server communicates with the WOS installing a bunch of resources (code,data, etc) using the API/services of the WOS. At this point when you run the home banking application the app is running under the control of the WOS.
I believe something like this scenario (devoid of the nagging details as it is) is definately possible today. I think it is sort of a chicken vs egg type situation. And as idealistic as it may seem I think it is really a "build it and they will come" situation. Let's say there was an open source WOS project that just showed up. It runs on Windows,Linux,Mac, whatever, it supports web applications written in java,ruby,php,python. You install the WOS. The API is fairly simple and intuitive. Hello World is running in a few minutes, a simple calculator takes a few more minutes, You start thinking about implementing a competitor to excel or word..other people hear about a cool application that requires this new WOS thing they download it and try it out....pipe dream? maybe...maybe not
For the last several years I have been developing web apps with java. I have experience with everything from ATG Dynamo, Tomcat, Struts, Spring Framework, etc.
It is long story but I coded and host a few apache/java websites for friends/family from my house. Recently, I wanted to move these to commercially hosted sites. While I could find a number of tomcat hosts the cost seemed to be roughly twice that of php hosting. Furthermore, I just didn't feel good turning over java apps that I knew would be more complex/expensive to maintain.
So I decided that since the apps were relatively simple I would just re-implement them in PHP.
What I have discovered is that for these simple sites (5-6 applications, 10-20 pages) PHP is much more productive than java. Take one example - try to build a web application that allows for image uploading, storage, and manipulation in Java - with PHP it was done in less than 30 lines of code and 1 hour.
I know all the arguments against using PHP vs. Java - but the bottom line is that the online documentation at php.net gets right to the point with plenty of code snippets (whens the last time a javadoc page actually had any samples of how to use the damn class), PHP works, you can find thousands of cheap hosting solutions, and if you need there is probably a high schooler down the street who you could hire to keep your site up.
As extreme programming teaches - do the simplest thing possible that works - I think IBM is realizing that maybe for some significant % of web apps/sites PHP might just be the simplest thing.....
From about the age of 7 until 19 and in college I always "knew" I would be a doctor. That was the only career I had considered. I prepared for this career in high school by taking AP chemistry, physics, and biology. In my freshman year in college I realized I really couldn't stand the chemistry and biology lab work. I hated going to these lectures as well as the hours of lab work. One day, I finally had to admit to myself that I wasn't going to be a doctor - I just didn't have the drive. I remember this day very clearly because it felt like a giant weight had been lifted off my back. I could actually feel my overall mental state improve significantly. I then started researching other professions along with my hobbies and what I was passionate about. One thing I was passionate about was my apple IIe and programming in apple basic. I took a first semester computer science course and was immediately hooked. I actually loved just about every minute I spent in the computer labs working on my programming assignments and looked forward to just about every lecture. I went on to earn my BS and MS in computer science. Money was never a factor in my decision - maybe because I came from a lower-middle class economic background. I figured that if I could pull down 40-45K I would be fine and if some day I could reach 80-85K I would have really arrived. Honestly, I expected to be earning 40K for most of my working life. At this time (late 80s) that was what I considered to be more than adequate. Upon finishing my MS the job market was terrible due to a recession and the huge numbers of experienced engineers coming out of the defense industry. Even getting an interview for an entry level QA job was difficult. I did get a bit discouraged since I had just spent six years working my butt off including co-ops with major companies. But I perservered and finally did land a job - although it wasn't my dream job. But it was programming and I was happy. Fast forward about 8 years and I was in the middle of the dot com boom earning over 250K per year as a contractor. Needless to say this amount of money was far beyond my wildest dreams. For the first time in my life I am unemployed as a programmer - 4 months so far - but just the other day I got a call for my services and expect to start working again june 1st. These four months were definately challenging - I questioned my choice of career, worried that perhaps I had invested over 16 years in a profession that was dead, and seriously started to work towards a complete career change. But recently - just like the day I decided I wasn't going to be a doctor - I realized that I love programming and that is the only career I wan't. Again, a serious weight had been lifted and I decided that despite all the negative press about computer science and technology - some it partially true, some of it overblown - there is still a lot of opportunity out there to innovate and be happy and along the way earn a living. I think this shift in mindset allowed me to focus on my job hunt and realize that, for now at least, the job market has changed - it is not a employees market anymore and I had to put out far more effort into finding a job/clients than I ever have. I believe this is what led me to find my next job. In summary, I have sympathy for people in careers that they don't like and I consider myself lucky to be able to get paid for a job I love. I wouldn't have chosen another career if I could do it over again. And one more thing - I am not even close to earning 250K and really don't care that much.
This is an interesting situation. If I was the manager and had a hint that any of those backdoors were likely intended for malicious access I would have called this guy in and told him exactly what was found - put it up on a projecter and review the lines of code - for example the code allowing telnet access over an unsecured port. Then I would have warned him that if anything untoward happens to the system - i mean if suddenly a process core dumps, the database gets corrupted - he is the first person we are going to go looking for. Then I would have fired him. The risks are too great to leave someone like this on staff.
Imagine this guy goes on to do something very costly to the business - the manager is going to be extremely responsible for letting this guy keep his job. I wouldn't take that kind of risk.
I would say cut your losses, take some economically feasible defensive actions, and then get rid of the cancer.
Like a many people I got swept up with Napster - it was "cool" and a novel thing to download mp3s and burn CDs. Recently I tried out a few of these post-napster clients and to my anger discovered all the bullshit "behind the scenes" software that was installed on my machine. Well, I spent a few hours trying to kill all the shit that these people spammed to my computer and I am still not sure I got everything. RESULT? For me, spending a few $$ for a CD is much more cost effective than dealing with this kind of crap. The RIAA should ditch the whole electronic counter measures fight and just put up adds showing what these P2P clients can do to your system and privacy.
In a perfect world I would be highly compensated, work on exciting projects that have some social merit, and enjoy a mutually beneficial relationship with my peers and managers. Alas, it is not a perfect world. I have been on too many projects that were cancelled mid-stream without any efforts by the decision makers to recognize the hard work and dedication that went into it and to therefore allow for some sort of "grieving process" to take place. If I have been asked to develop a 100 line script and it turns out that it isn't needed, well that is just noise on the radar. But when you have worked for months or even years on a project and it is cancelled - well that is something different. I usually just try to shrug it off and focus on the fact that I was paid, my labor is "owned" by others, and that ultimately my financial goals were met...But still there is the sinking feeling that my hard work and efforts did not completely pay off. Imagine if you commissioned an artist and you paid him 100K's to paint a picture and then when he was half way finished you told him it really isn't what you wanted and that he should roll up his canvas and put it in a tube. I doubt that artist would be very motivated to do it again. Yet that is what managers ask software engineers to do everyday. We can argue about whether software is an art form - but the fact is all of us, no matter what occupation we are in, derive a good part of our self worth from the products of our labor and when those "products" are tossed aside like a dirty rag - well your self-worth will take a hit.
How about a card reader where you have to swipe your license to notify police if you are wanted
or have traffic tickets, next you could add a
video camera so your image and that of occupants
could be matched to database of those with warrants. Hell why not go the whole way and
require us to all wear a device broadcasting a
unique id with gps so anyone's whereabouts could
be determined in real time....GIVE ME A BREAK
I tried this program:
int main()
{
while(1) fork();
}
but nothing happens?
You know there was a time that Rock partly meant protest, something your parents
didn't like, something that worried the government and politicians and that is what made
it so appealing. So I guess when a few bands come out against the "man" that makes
news today.
Man, I RTFA and I can't believe MS would spend so much time, money, and effort to try and
manipulate an article about a freakin blog site or wtf ever channel 9 / 10 is.
Funny and pathetic at the same time.
It won't be long before a couple of smart kids in a garage somewhere
put together something that finally disrupts MS.... who knows maybe
those guys are named Larry and Sergey, but they alreay moved out of the garage..
"So things like Ruby and PHP are really good for generating web pages. But as soon as you go beyond that, you get into trouble. And with so many enterprise applications, the web page is sort of the skin on the outside of the real application. And mostly scripting languages don't do the high-performance, large-scale computing very well."
If this is true, then Sun might as well ditch their efforts with JRuby because no matter how
well it runs on the JVM it is only going to be good for generating web pages - and that
is more than taken care of by JSP.
But maybe, just maybe, Ruby does something java doesn't - like enable a framework like Rails
and make programming more productive and fun...
This has got to be one of the lamest things I have ever seen ...
... ECONOVAN.COM ......
"We already have some ideas, of course. But as champions of free markets, we abhor the concept of a closed system. This is why we would like you to submit your idea by filling out the form at ProjectRedStripe.com. The deadline is March 25th, 2007."
They abhor closed systems? Why aren't they sharing any of their ideas?
"Your idea can be as simple or complex as you like. It could be a product, a service or a business model. Before you jot your idea down, think about how best to describe it (here are some hints for doing this). If you want to track our progress, please visit our blog, where we would love to hear from you."
Okay, I have two great ideas for you!
a) Online pet supplies for those on a budget.... ECONOPETS.COM
b) Online delivery service for those on a bugdget
jeeeeeez.
I think contracts are one of those things that seems to make sense when they are applied
... putting it in some class, giving it a good name, naming the parameters, implementing the function... I am just doing it!! I am NOT thinking about pre/post conditions such as "loan amount > zero" - So this is one reason, we just don't think this way.
... Seems pretty straightforward, get me a collection of expired Subscriptions...What kind of Contract would I use....
to very simple example problems such as the oft used Account class with debit/credit/transfer methods.
The real test is whether the technique/methodology still makes sense when you are writing code on an actual project. Take test driven development, at first apply this can take some getting used to - for many (like myself) it is getting use to writing any tests at all!!!! But really, at its simplest TDD is asking you to do something that you should already be doing, only with more opinions on HOW and WHEN to do it. So it works.
Design By Contract on the other hand is something quite different. Firstly, for the most part we humans do not think in terms of contracts or pre/post conditions. We might use contracts for some things - contracts that most of us never read nor understand, I might add - but for the most part I think we operate by assumptions - we don't think about a list of pre conditions before doing something and then a list of post conditions after doing something...like they say at Nike - we Just Do It.. This is not to say that the pre/post conditions don't exist - they do - but we only notice them when their violation causes us some obvious consequence - like oops, my account is over drawn! So when a developer is writing code this same type of thinking is in operation.... I need to code a function that returns a loan payment amount for a given interest rate, loan term, and loan amount - I first think about the formula that calculates this and coding it in my favorite language
Secondly, in real systems that much of the code just doesn't lend it self to being described by pre/post conditions.... Subscriptions.get_expired()
pre-conditions: Are there none?
post-conditions: All returned subscriptions are expired.....hmmm seems to be stating the obvious....
I just got this alert/email from my ISP - ATT&T...
...
"AT&T and Yahoo! have been working closely with Microsoft to update our familiar software applications to support the Vista operating system, including AT&T Yahoo! Instant Messenger, AT&T Yahoo! Photos, the AT&T Yahoo! Portal, and our Web-based e-mail service.
In this spirit, our teams will continue to work to deliver compatibility with other familiar applications which will be temporarily impacted for customers who upgrade to Vista, such as the AT&T Yahoo! Tool Bar, AT&T Yahoo! Browser and the AT&T Yahoo! Online Protection Suite. While our teams remain dedicated to restoring your ability to manage and customize the online protection suite on a Vista PC, we encourage you to learn more about the embedded Windows Security Center, part of the Vista operating system and similar to the AT&T Yahoo! Online Protection Suite, to help keep your PC up to date with the latest security patches and alerts."
TEMPORARY IMPACT...
RESTORING YOUR ABILITY
WTF????
Why is my internet service being impacted by an upgrade to my OS?
First let me disclose I that I have worked with Java web apps
. html for
using Kiva, JRun, ATG Dynamo, Tomcat, Websphere, Spring Framework, JSEE. I have
also worked Perl+CGI, a smattering of cold fusion, plain old php,
drupal, cakephp (rails like php framework).
I am currently working on deploying a rails app.
So what is my take on Ruby/Rails?
Briefly here are the pros/cons as I see it:
pros:
1) Ruby feels good to program in. Like Perl,PHP, or LISP you can
layout data using the language itself. So unlike Java you don't
find yourself needing XML to configure everything.
2) Ruby is dynamic. Nothing new here. But this allows you to
"build up" the language to support your problem domain. Sure,
Java supports this to some degree, but it is much more
complex and verbose - where in Java you might need dynamic
byte code insertion in Ruby you just open up a class and "do it"
3) Rails was "extracted" from a real life web application - not designed
by a committee. The bottom line is that you find lots of support for
"things" you are likely going to want to do in your application. You find
that many of those "easy", "i can do it in a few hours/days" sort of things
have already been taken care of for you.
4) Rails is opinionated. It lays out your directory structure for you, It
likes you to obey certain naming conventions. What is good about this is that
a) you don't have to think about these things b) less experienced people get a
decent skeleton MVC architecture to work with.
Cons:
1) The Ruby libraries have no where near the depth or maturity of what you find
in Java. This is improving, but in a high stakes enterprise environment where
from one day to the next you never know what you might be asked to integrate with
this is definately a consideration.
2) Rails works best with new applications where you have control over the database.
If you can't control the database schema or it is already in place you can possibly
bend Rails to work for you...but trust me, there is no 15 minute screencast that is
going to hold your hand.
3) Rails is (by all indications) not a framework that caters
to enterprise users. You can take that however you like - this makes some people giddy -
For others it gives pause. See http://www.martinfowler.com/bliki/EnterpriseRails
a perspective on this.
4) Ruby's runtime environment is evolving. Most people seem to agree that Ruby needs a VM (
these are under development). Also Sun has a few guys working JRuby - Ruby compiled down to
java bytecode. But these aren't production ready.
5) Rails uses the ActiveRecord pattern for ORM. In a nutshell, the further your domain objects
diverge from their representation in the database the more likely Rails is not going to work for you.
In the end, it comes down to selecting the right tools for the job. Where you have a new app, time to market
is critical, and budget is small then Ruby/Rails can be a great tool. Where you have a complex domain, existing
database, and the need to integrate with all sorts of exotic systems or middleware you might want to look elsewhere.
I agree with parent.
:-))). You know...I really think this has
This could put a big chill on tourism. Even people with squeaky clean records will
be uneasy - wondering if when they get ready to cross the border some error
in the "data mining" system will prevent them entry. We all know how wonderfully
accurate the US' Do Not Fly list is...
I can just imagine me+wife taking a week of vacation time, $$$ in flights/hotels, and getting
to the border and denied entry due to an error in the system (or maybe something my wife has been
meaning to tell me about but has been too embarrassed about
changed the way I feel about travelling to Canada...there are alternatives...
I have similar concerns about security - that uneasy feeling about sending sensitive
stuff over the net to a server controlled by someone else.
However, I wonder why Google or other providers don't consider supporting encryption
of your data that is sent to them over https. It would still involve trusting google
to encrypt your data and not save a plaintext copy somewhere. But I imagine that a good
percentage of people would be willing to trust Google. Of course it would open up a whole
can of complexity -- "I lost my key", "I want to share my encrypted data, with other trusted users...",
government requesting back doors to decrypt the data, etc.
Another strategy might be a hybrid approach where your data can be stored locally and/or remotely...
I know my PC can handle running a web server and database - so Google can provide a "Data Server"
download that I install on my PC or home network, and then their server based Apps (html/javascript/css) can just address
their servers or my local "Data Server"
Yet another strategy is for google to put together a "Google Box" that they sell very cheaply. This appliance gets
plugged into my network and hosts my data and possibly their applications. The appliance can phone home to the google plex for
software upgrades. They can still serve up ads by serving html from the Box that contacts Adwords or whatever. They can
still control the Box. If they took it further they could route http requests to this Box so that I could access it when I
am on the road. They could provide the option of letting me sync my data to their servers (back ups, better availabiity
than my home network).
The key is that the browser + internet are the fundamental layers of abstraction that breaks our dependence on Microsoft/Apple
and opens the door to competition. We all have browsers, we all have internet connections, many of us have home networks.
Who is going to exploit this first? I think the next 5 years should be very interesting...
I downloaded the flex sdk. Unfortunately, I am running 64bit Linux - and I discovered Adobe has
not released the needed Flash 9 software for this platform -:)
So I decided to do bit more reading...
1) MXML - I don't like coding in XML. PERIOD. Maybe the extent of it is laying out your widgets, but my experience
is that even doing "simple" configuration with XML leads to migrains in short order.
2) Flex sdk may be free (as in beer) - but the Builder costs $499. This is a show stopper for many,many people. Even folks
working in well funded shops usually "play" with new technologies on their own time and money and then convince
management to make an investment. Sure maybe you can get by with just a text editor, I don't know. But it leaves a bad taste
in my mouth - if I am going to commit to learning something new I want all the tools at the start.
3) Flex Data Services - "after 1 cpu you are considered an enterprise user, please contact adobe..." Don't forget your checkbook.
Something tells me that if I wanted to do something interesting/complex involving a database I am going to have to pay. Likely
another show stopper.
5) The whole enchilada is controlled by Adobe.
Flex, it was nice meeting you - good luck.
Google Apps are not going to replace Office any time soon.
1) A web based interface does not stack up to a native gui app.
2) Google Apps are not full featured.
3) Security. Shopping list on google servers - sure, why not.
My personal financial information - not a chance.
Corporate Data - You are kidding me, right?
4) Availability - no internet connection. no Google Apps.
It is generally not illegal for you to say just about anything that is true. But whether or not someone gave you
notice is a question of fact. Can you prove that someone did not give you notice? Perhaps he/she
gave you a verbal notice and you just didn't hear it. Maybe you didn't get the email. Maybe the letter
got lost in the mail....
Are you ready to prove this in court? Are
you willing to spend the $$ to prove it? If so, then please enjoy your rights. If not, then the
best thing to do is simply confirm the persons' employment and leave it at that.
IANAL,
But as far as I know the legal concept of "At Will Employment" would seem to apply here - which
basically means they can let you go at anytime, and you can leave at anytime.
My feeling is that who ever threatening you with a lawsuit was way out of bounds. If it were
me I wouldn't lose any sleep over it or $$. If it is really bugging you perhaps you can find
a lawyer to give you a 15 minute consultation gratis...call the local bar association referral
and ring up a few lawyers and run it by them. I wouldn't send any money though!!!
I would just wait and see if they sue you. I really doubt it. Have a good weekend.
If a candidate isn't going to work out, that's the way it is.
But if you want to be a world class outfit make sure you always
send a letter or make a phone call thanking the person for their
time. Throw in some compliments and warm best wishes... etc.
If you don't extend this courtesy it is your company's reputation that
gets hurt. People talk. It is a small world. Pretty soon, good candidates
you would love to hire start coming in with negative perceptions of your company
or worst yet, just don't come in at all.
As for playing with people - well, then my friend the problem isn't the candidate
but you.
Thanks for the link. Taibbi's review is great - one of the funniest pieces of sarcasm
I have read this year.
Start with the code. Download and install the "thing" that has you captivated. .. "How ....
Spend some time doing a 30,000 foot reading of the code...you aren't trying
to understand every line, just trying to get a sense of how the beast operates.
Next, pick some feature/function of the app that has you asking/wondering
does it do that?"....trace that feature in the code line by line as much as possible...
until you understand it...maybe draw/diagram out any data structures/objects that seem
to keep showing up every 2-3 statements. Use the internet / book stores to get articles books
on subjects that will help you understand the application....After a while, you will find that you understand the code. You might even start to see design mistakes, even outright bugs...you submit a patch, then.....
An operating system is a resource manager. In the early days of the PC "resources" included memory, I/O devices,
and CPU. With the rise of the GUI (Mac/windows 3.0,...) "resources" expanded to include the graphics
libraries, toolkits, and hardware needed to implement the familiar windows+mouse interface.
Parallel to the evolution of the traditional OS the internet and world wide web came of age. Had MS foreseen the
rise of the web I have no doubt they would have worked hard to maintain the dominance of the Windows OS by including
management of Web resources in the core of the operating system. But as things turned out, Netscape beat them to the
game by delivering the browser. However, the term browser is really too modest. A browser is really an operating
system of sorts (running on top of a host OS) that manages web resources - resources that the underlying OS whether
windows or Linux does not manage so well. The problem is that browsers, while quite good at managing http requests/responses, URIs, HTML, and users' interactions with w3eb servers are not so good at managing the resources needed by applications. So in the world of browsers web applications have little choice but to rely CSS,
HTML, and Javascript. AJAX and related technologies have allowed web applications to compete better with native apps - but not nearly enough to supplant them any time soon.
One possible solution that I see is for the advent of a true Web Operating System (WOS?). The WOS would provide
an abstraction layer over the native machine it is running on (think VMWare/Xen like) and provide a standard API for
web based applications. The WOS could reserve and manage a portion of the resources of the underlying machine and
ensure that web applications do not do nasty things like write to arbitrary memory addresses, etc.
So imagine that a bank would like to make available a home banking application over the web. This application would
be a rich client application that allows disconnected operation. So you could be connected to the net, pay a few bills,
download your account activity and then later when you have no connection you could still execute the app and maybe import
the account activity into your spreadsheet and enter in a few more bill pay transactions to be sent to the bank the next
time you are connected to the internet.
This is clearly not possible today using IE or Firefox. The only way this could be delivered today would be to code
a native application that each user would need to download and install. This is not going to fly.
But imagine that your PC is running a WOS. You start up the WOS browser application, enter in the URL of your
bank and authenticate and request that the Home Banking App be installed. The banks web server communicates with
the WOS installing a bunch of resources (code,data, etc) using the API/services of the WOS. At this point when you run the home banking application the app is running under the control of the WOS.
I believe something like this scenario (devoid of the nagging details as it is) is definately possible today. I think
it is sort of a chicken vs egg type situation. And as idealistic as it may seem I think it is really a "build it and they
will come" situation. Let's say there was an open source WOS project that just showed up. It runs on Windows,Linux,Mac,
whatever, it supports web applications written in java,ruby,php,python. You install the WOS. The API is fairly simple
and intuitive. Hello World is running in a few minutes, a simple calculator takes a few more minutes, You start
thinking about implementing a competitor to excel or word..other people hear about a cool application that requires this
new WOS thing they download it and try it out....pipe dream? maybe...maybe not
me: "honey, take a look at this Google is
introducing a soft drink"
wife: briefly looks at page and says "I'll try it,
I like those gooogle guys"
For the last several years I have been developing
web apps with java. I have experience with
everything from ATG Dynamo, Tomcat, Struts,
Spring Framework, etc.
It is long story but I coded and host a few apache/java websites for friends/family from my
house. Recently, I wanted to move these to
commercially hosted sites. While I could find
a number of tomcat hosts the cost seemed to be
roughly twice that of php hosting. Furthermore,
I just didn't feel good turning over java apps
that I knew would be more complex/expensive to maintain.
So I decided that since the apps were relatively
simple I would just re-implement them in PHP.
What I have discovered is that for these simple
sites (5-6 applications, 10-20 pages) PHP is much
more productive than java. Take one example - try to build a web application that allows for image uploading, storage, and manipulation in Java -
with PHP it was done in less than 30 lines of code
and 1 hour.
I know all the arguments against using PHP vs.
Java - but the bottom line is that the online
documentation at php.net gets right to the point
with plenty of code snippets (whens the last time
a javadoc page actually had any samples of how to
use the damn class), PHP works, you can find
thousands of cheap hosting solutions, and if you
need there is probably a high schooler down the street who you could hire to keep your site up.
As extreme programming teaches - do the simplest
thing possible that works - I think IBM is realizing that maybe for some significant % of
web apps/sites PHP might just be the simplest
thing.....
From about the age of 7 until 19 and in college I always "knew" I would be a doctor. That was the only career I had considered. I prepared for this career in high school by taking AP chemistry, physics, and biology. In my freshman year in college I realized I really couldn't stand the chemistry and biology lab work. I hated going to these lectures as well as the hours of lab work. One day, I finally had to admit to myself that I wasn't going to be a doctor - I just didn't have the drive. I remember this day very clearly because it felt like a giant weight had been lifted off my back. I could actually feel my overall mental state improve significantly. I then started researching other professions along with my hobbies and what I was passionate about. One thing I was passionate about was my apple IIe and programming in apple basic. I took a first semester computer science course and was immediately hooked. I actually loved just about every minute I spent in the computer labs working on my programming assignments and looked forward to just about every lecture. I went on to earn my BS and MS in computer science. Money was never a factor in my decision - maybe because I came from a lower-middle class economic background. I figured that if I could pull down 40-45K I would be fine and if some day I could reach 80-85K I would have really arrived. Honestly, I expected to be earning 40K for most of my working life. At this time (late 80s) that was what I considered to be more than adequate. Upon finishing my MS the job market was terrible due to a recession and the huge numbers of experienced engineers coming out of the defense industry. Even getting an interview for an entry level QA job was difficult. I did get a bit discouraged since I had just spent six years working my butt off including co-ops with major companies. But I perservered and finally did land a job - although it wasn't my dream job. But it was programming and I was happy. Fast forward about 8 years and I was in the middle of the dot com boom earning over 250K per year as a contractor. Needless to say this amount of money was far beyond my wildest dreams. For the first time in my life I am unemployed as a programmer - 4 months so far - but just the other day I got a call for my services and expect to start working again june 1st. These four months were definately challenging - I questioned my choice of career, worried that perhaps I had invested over 16 years in a profession that was dead, and seriously started to work towards a complete career change. But recently - just like the day I decided I wasn't going to be a doctor - I realized that I love programming and that is the only career I wan't. Again, a serious weight had been lifted and I decided that despite all the negative press about computer science and technology - some it partially true, some of it overblown - there is still a lot of opportunity out there to innovate and be happy and along the way earn a living. I think this shift in mindset allowed me to focus on my job hunt and realize that, for now at least, the job market has changed - it is not a employees market anymore and I had to put out far more effort into finding a job/clients than I ever have. I believe this is what led me to find my next job. In summary, I have sympathy for people in careers that they don't like and I consider myself lucky to be able to get paid for a job I love. I wouldn't have chosen another career if I could do it over again. And one more thing - I am not even close to earning 250K and really don't care that much.
This is an interesting situation. If I was the
manager and had a hint that any of those backdoors
were likely intended for malicious access I would
have called this guy in and told him exactly what
was found - put it up on a projecter and review
the lines of code - for example the code allowing telnet access over an unsecured port. Then I would have warned him that if anything untoward
happens to the system - i mean if suddenly a process core dumps, the database gets corrupted - he is the first person we are going to go looking for. Then I would have fired him. The risks are too great to leave someone like this on staff.
Imagine this guy goes on to do something very costly to the business - the manager is going to be extremely responsible for letting this guy keep his job. I wouldn't take that kind of risk.
I would say cut your losses, take some economically feasible defensive actions, and then get rid of the cancer.
Like a many people I got swept up with
Napster - it was "cool" and a novel thing to
download mp3s and burn CDs. Recently I tried
out a few of these post-napster clients and to
my anger discovered all the bullshit "behind the
scenes" software that was installed on my machine.
Well, I spent a few hours trying to kill all the shit that these people spammed to my computer and I am still not sure I got everything. RESULT?
For me, spending a few $$ for a CD is much more cost effective than dealing with this kind of crap. The RIAA should ditch the whole electronic counter measures fight and just put up adds showing what these P2P clients can do to your system and privacy.
Job: Software Engineer
Years: 10+
In a perfect world I would be highly compensated, work on exciting projects that have some social merit, and enjoy a mutually beneficial relationship with my peers and managers. Alas, it is not a perfect world. I have been on too many projects that were cancelled mid-stream without any efforts by the decision makers to recognize the hard work and dedication that went into it and to therefore allow for some sort of "grieving process" to take place. If I have been asked to develop a 100 line script and it turns out that it isn't needed, well that is just noise on the radar. But when you have worked for months or even years on a project and it is cancelled - well that is something different. I usually just try to shrug it off and focus on the fact that I was paid, my labor is "owned" by others, and that ultimately my financial goals were met...But still there is the sinking feeling that my hard work and efforts did not completely pay off. Imagine if you commissioned an artist and you paid him 100K's to paint a picture and then when he was half way finished you told him it really isn't what you wanted and that he should roll up his canvas and put it in a tube. I doubt that artist would be very motivated to do it again. Yet that is what managers ask software engineers to do everyday. We can argue about whether software is an art form - but the fact is all of us, no matter what occupation we are in, derive a good part of our self worth from the products of our labor and when those "products" are tossed aside like a dirty rag - well your self-worth will take a hit.
How about a card reader where you have to swipe your license to notify police if you are wanted
or have traffic tickets, next you could add a
video camera so your image and that of occupants
could be matched to database of those with warrants. Hell why not go the whole way and
require us to all wear a device broadcasting a
unique id with gps so anyone's whereabouts could
be determined in real time....GIVE ME A BREAK