Of course there is no formula for success except perhaps an unconditional acceptance of life and what it brings.
US (Polish-born) composer & pianist (1886 – 1982)
Filed under: Uncategorized
Taken from http://www.rebtnetwork.org/whatis.html
What is REBT?
Rational Emotive Behavior Therapy (REBT) is a form of psychotherapy and a philosophy of living created by Albert Ellis in the 1950′s.
REBT (pronounced R.E.B.T. — it is not pronounced rebbit) is based on the premise that whenever we become upset, it is not the events taking place in our lives that upset us; it is the beliefs that we hold that cause us to become depressed, anxious, enraged, etc. The idea that our beliefs upset us was first articulated by Epictetus around 2,000 years ago: "Men are disturbed not by events, but by the views which they take of them."
The Goal of Happiness
According to Albert Ellis and to REBT, the vast majority of us want to be happy. We want to be happy whether we are alone or with others; we want to get along with others—especially with one or two close friends; we want to be well informed and educated; we want a good job with good pay; and we want to enjoy our leisure time.
Of course life doesn’t always allow us to have what we want; our goal of being happy is often thwarted by the "slings and arrows of outrageous fortune." When our goals are blocked, we can respond in ways that are healthy and helpful, or we can react in ways that are unhealthy and unhelpful.
The ABC Model
Albert Ellis and REBT posit that our reaction to having our goals blocked (or even the possibility of having them blocked) is determined by our beliefs. To illustrate this, Dr. Ellis developed a simple ABC format to teach people how their beliefs cause their emotional and behavioral responses:
A. Something happens.
B. You have a belief about the situation.
C. You have an emotional reaction to the belief.
For example:
A. Your employer falsely accuses you of taking money from her purse and threatens to fire you.
B. You believe, “She has no right to accuse me. She’s a bitch!”
C. You feel angry.
If you had held a different belief, your emotional response would have been different:
A. Your employer falsely accuses you of taking money from her purse and threatens to fire you.
B. You believe, “I must not lose my job. That would be unbearable.”
C. You feel anxious.
The ABC model shows that A does not cause C. It is B that causes C. In the first example, it is not your employer’s false accusation and threat that make you angry; it is your belief that she has no right to accuse you, and that she is a bitch. In the second example, it is not her accusation and threat that make you anxious; it is the belief that you must not lose your job, and that losing your job would be unbearable.
The Three Basic Musts
Although we all express ourselves differently, according to Albert Ellis and REBT, the beliefs that upset us are all variations of three common irrational beliefs. Each of the three common irrational beliefs contains a demand, either about ourselves, other people, or the world in general. These beliefs are known as "The Three Basic Musts."
- I must do well and win the approval of others for my performances or else I am no good.
- Other people must treat me considerately, fairly and kindly, and in exactly the way I want them to treat me. If they don’t, they are no good and they deserve to be condemned and punished.
- I must get what I want, when I want it; and I must not get what I don’t want. It’s terrible if I don’t get what I want, and I can’t stand it.
The first belief often leads to anxiety, depression, shame, and guilt. The second belief often leads to rage, passive-aggression and acts of violence. The third belief often leads to self-pity and procrastination. It is the demanding nature of the beliefs that causes the problem. Less demanding, more flexible beliefs lead to healthy emotions and helpful behaviors
Disputing
The goal of REBT is to help people change their irrational beliefs into rational beliefs. Changing beliefs is the real work of therapy and is achieved by the therapist disputing the client’s irrational beliefs. For example, the therapist might ask, "Why must you win everyone’s approval?" "Where is it written that other people must treat you fairly?" "Just because you want something, why must you have it?" Disputing is the D of the ABC model. When the client tries to answer the therapist’s questions, s/he sees that there is no reason why s/he absolutely must have approval, fair treatment, or anything else that s/he wants.
Insight
Albert Ellis and REBT contend that although we all think irrationally from time to time, we can work at eliminating the tendency. It’s unlikely that we can ever entirely eliminate the tendency to think irrationally, but we can reduce the frequency, the duration, and the intensity of our irrational beliefs by developing three insights:
- We don’t merely get upset but mainly upset ourselves by holding inflexible beliefs.
- No matter when and how we start upsetting ourselves, we continue to feel upset because we cling to our irrational beliefs.
- The only way to get better is to work hard at changing our beliefs. It takes practice, practice, practice.
Acceptance
Emotionally healthy human beings develop an acceptance of reality, even when reality is highly unfortunate and unpleasant. REBT therapists strive to help their clients develop three types of acceptance: (1) unconditional self-acceptance; (2) unconditional other-acceptance; and (3) unconditional life-acceptance. Each of these types of acceptance is based on three core beliefs:
Unconditional self-acceptance:
- I am a fallible human being; I have my good points and my bad points.
- There is no reason why I must not have flaws.
- Despite my good points and my bad points, I am no more worthy and no less worthy than any other human being.
Unconditional other-acceptance:
- Other people will treat me unfairly from time to time.
- There is no reason why they must treat me fairly.
- The people who treat me unfairly are no more worthy and no less worthy than any other human being.
Unconditional life-acceptance:
- Life doesn’t always work out the way that I’d like it to.
- There is no reason why life must go the way I want it to
- Life is not necessarily pleasant but it is never awful and it is nearly always bearable.
REBT Today
Clinical experience and a growing supply of experimental evidence show that REBT is effective and efficient at reducing emotional pain. When Albert Ellis created REBT in the 1950′s he met with much resistance from others in the mental health field. Today it is one of the most widely-practiced therapies throughout the world. In the early days of REBT, even Dr. Ellis did not clearly see that consistent use of its philosophical system would have such a profound effect on the field of psychotherapy or on the lives of the millions of people who have benefited from it.
Why have you been so successful in reaching some of your goals, but not others? If you aren’t sure, you are far from alone in your confusion. It turns out that even brilliant, highly accomplished people are pretty lousy when it comes to understanding why they succeed or fail. The intuitive answer — that you are born predisposed to certain talents and lacking in others — is really just one small piece of the puzzle. In fact, decades of research on achievement suggests that successful people reach their goals not simply because of who they are, but more often because of what they do.
1. Get specific. When you set yourself a goal, try to be as specific as possible. "Lose 5 pounds" is a better goal than "lose some weight," because it gives you a clear idea of what success looks like. Knowing exactly what you want to achieve keeps you motivated until you get there. Also, think about the specific actions that need to be taken to reach your goal. Just promising you’ll "eat less" or "sleep more" is too vague — be clear and precise. "I’ll be in bed by 10pm on weeknights" leaves no room for doubt about what you need to do, and whether or not you’ve actually done it.
2. Seize the moment to act on your goals. Given how busy most of us are, and how many goals we are juggling at once, it’s not surprising that we routinely miss opportunities to act on a goal because we simply fail to notice them. Did you really have no time to work out today? No chance at any point to return that phone call? Achieving your goal means grabbing hold of these opportunities before they slip through your fingers.
To seize the moment, decide when and where you will take each action you want to take, in advance. Again, be as specific as possible (e.g., "If it’s Monday, Wednesday, or Friday, I’ll work out for 30 minutes before work.") Studies show that this kind of planning will help your brain to detect and seize the opportunity when it arises, increasing your chances of success by roughly 300%.
3. Know exactly how far you have left to go. Achieving any goal also requires honest and regular monitoring of your progress — if not by others, then by you yourself. If you don’t know how well you are doing, you can’t adjust your behavior or your strategies accordingly. Check your progress frequently — weekly, or even daily, depending on the goal.
4. Be a realistic optimist. When you are setting a goal, by all means engage in lots of positive thinking about how likely you are to achieve it. Believing in your ability to succeed is enormously helpful for creating and sustaining your motivation. But whatever you do, don’t underestimate how difficult it will be to reach your goal. Most goals worth achieving require time, planning, effort, and persistence. Studies show that thinking things will come to you easily and effortlessly leaves you ill-prepared for the journey ahead, and significantly increases the odds of failure.
5. Focus on getting better, rather than being good. Believing you have the ability to reach your goals is important, but so is believing you can get the ability. Many of us believe that our intelligence, our personality, and our physical aptitudes are fixed — that no matter what we do, we won’t improve. As a result, we focus on goals that are all about proving ourselves, rather than developing and acquiring new skills.
Fortunately, decades of research suggest that the belief in fixed ability is completely wrong — abilities of all kinds are profoundly malleable. Embracing the fact that you can change will allow you to make better choices, and reach your fullest potential. People whose goals are about getting better, rather than being good, take difficulty in stride, and appreciate the journey as much as the destination.
6. Have grit. Grit is a willingness to commit to long-term goals, and to persist in the face of difficulty. Studies show that gritty people obtain more education in their lifetime, and earn higher college GPAs. Grit predicts which cadets will stick out their first grueling year at West Point. In fact, grit even predicts which round contestants will make it to at the Scripps National Spelling Bee.
The good news is, if you aren’t particularly gritty now, there is something you can do about it. People who lack grit more often than not believe that they just don’t have the innate abilities successful people have. If that describes your own thinking …. well, there’s no way to put this nicely: you are wrong. As I mentioned earlier, effort, planning, persistence, and good strategies are what it really takes to succeed. Embracing this knowledge will not only help you see yourself and your goals more accurately, but also do wonders for your grit.
7. Build your willpower muscle. Your self-control "muscle" is just like the other muscles in your body — when it doesn’t get much exercise, it becomes weaker over time. But when you give it regular workouts by putting it to good use, it will grow stronger and stronger, and better able to help you successfully reach your goals.
To build willpower, take on a challenge that requires you to do something you’d honestly rather not do. Give up high-fat snacks, do 100 sit-ups a day, stand up straight when you catch yourself slouching, try to learn a new skill. When you find yourself wanting to give in, give up, or just not bother — don’t. Start with just one activity, and make a plan for how you will deal with troubles when they occur ("If I have a craving for a snack, I will eat one piece of fresh or three pieces of dried fruit.") It will be hard in the beginning, but it will get easier, and that’s the whole point. As your strength grows, you can take on more challenges and step-up your self-control workout.
8. Don’t tempt fate. No matter how strong your willpower muscle becomes, it’s important to always respect the fact that it is limited, and if you overtax it you will temporarily run out of steam. Don’t try to take on two challenging tasks at once, if you can help it (like quitting smoking and dieting at the same time). And don’t put yourself in harm’s way — many people are overly-confident in their ability to resist temptation, and as a result they put themselves in situations where temptations abound. Successful people know not to make reaching a goal harder than it already is.
9. Focus on what you will do, not what you won’t do. Do you want to successfully lose weight, quit smoking, or put a lid on your bad temper? Then plan how you will replace bad habits with good ones, rather than focusing only on the bad habits themselves. Research on thought suppression (e.g., "Don’t think about white bears!") has shown that trying to avoid a thought makes it even more active in your mind. The same holds true when it comes to behavior — by trying not to engage in a bad habit, our habits get strengthened rather than broken.
If you want change your ways, ask yourself, What will I do instead? For example, if you are trying to gain control of your temper and stop flying off the handle, you might make a plan like "If I am starting to feel angry, then I will take three deep breaths to calm down." By using deep breathing as a replacement for giving in to your anger, your bad habit will get worn away over time until it disappears completely.
It is my hope that, after reading about the nine things successful people do differently, you have gained some insight into all the things you have been doing right all along. Even more important, I hope are able to identify the mistakes that have derailed you, and use that knowledge to your advantage from now on. Remember, you don’t need to become a different person to become a more successful one. It’s never what you are, but what you do.
Filed under: Uncategorized
Copyright – Taken from http://aarathir.blogspot.com/
Preparing for my newborn
Though I love impulse buys (that’s the girlie side of me), I also totally dig researching the ends of the internet for the best products and bargains. So when I started my third trimester, every spare minute saw me glued to my laptop reading reviews and analyzing the best buys for baby gear. From my experience here are some suggestions for the other rookie moms out there.
Register! Register! Register!
I opened baby registries for 2 reasons – helps track my shopping list – completion discount is useful while buying the big ticket items. Be it for a shower(first baby) or a sprinkle(2nd or > baby) guests find it easy to click and ship the items you have chosen in your registry instead of buying gift cards. Of course there is a flip side to this – some people just can’t resist buying baby clothes as gifts for a baby shower. Either ways, there is more to gain by registering than not.
Where did I register?
The first place I checked out was Babies R Us (BRU). Well, I did open a registry there but hardly used it. Items were more expensive and choices were limited.
If you open a registry in a store, you get a goody bag (samples of diapers, wipes or lotions, a free copy of Baby Talk or Parents magazine and some coupons – usually for Huggies or Pampers) and a promise for a 15% completion coupon. Though I did open the registry in a store, the completion discount mailed out to me was only for 10%. None had an explanation for it. Oh well. If you open a registry online, you can walk in to the nearest store and request a goody bag. Also for an online registry you get a 10% completion coupon.
My completion coupon was mailed out about a month in advance of my due date. I used the coupon and a couple of gift cards to buy a bunch of clothes for my little one – nothing else, just clothes from BRU and that too just because I had to use those gift cards.
Point to note: The completion coupon is only for the items remaining on your registry. So in the store, make your selection, head to the counters, request a store associate to add them to your registry and then bill out with the coupon. They might tell you that it takes 48 hours for your registry to be updated and try to convince you to just bill out without the coupon – but that was not the case with me. The items showed up immediately. You can always take a print out after scanning, check for the recent additions and then bill out.
Final word on BRU registries – not my favorite. It felt like no one was interested in helping you out, higher prices, minimal choice.
The next and my most favorite registry was on Amazon.com. I’ve been an Amazon customer for almost 5 years now but my appreciation for their efforts and commitment to service just tripled with my baby registry experience. Those guys just think of everything! I signed up for their "Amazon mom" program as well – free prime membership(free 2 day shipping) for the first few months and this time limit extends with every purchase you make using their service. You also have some 30 % off your first shipment. Their "subscribe and save" option is also worth looking up. You get the widest choice, best price (no tax), reliable reviews and fastest, cheapest shipping from Amazon. They give you a 10% completion discount on certain items in your registry. The coupon shows up as a banner when you sign in to your registry. So whats the catch here? Well, the coupon is only applicable for items fulfilled and shipped by Amazon -not for items bought from vendors. In my case it wasn’t a big deal. The only items I couldn’t use the coupon on were a crib bedding set and a couple of breast pump accessories. The amazon mom benefits and completion discount coupon are stackable – so as far as you are signed in, the discounts get applied automatically. You may want to keep an eye out for 20% coupons on baby stuff that show up in Baby Talk and Parents magazine – These coupons can also be used. All together they wipe off a huge portion of the final bill.
Have you heard of diapers.com? If not, go check it out now. As the name suggests, it sells all the baby essentials. Amazon acquired it recently. Some items sold here are even cheaper than Amazon prices. They often publish coupon codes in baby forums (What to expect, babycenter). Also, they have a bunch of specials running at all times – look at the coupons tab on their website and copy paste those coupon codes while checking out. Another perk at diapers.com – they accept manufacturers coupons. The site also offers a baby registry service with a 10% completion coupon – but the coupon is effective only from your due date. Also, when you buy items off your registry, the other specials and coupon codes do not apply. To knock off a few more dollars from your diapers.com purchase, look into the Pampers gifts to grow rewards program (pampers.com) – its pretty simple. You find pampers rewards codes (tons of them online, some from pampers product purchases) and register them to your account. Each code earns you some rewards points. When you earn enough, you can redeem them for diapers.com coupons.
For in-store purchases, I like Buy Buy Baby. They have tons of choices and much better prices than BRU. There is a registry option and you get a 10% completion coupon mailed out to you about a month in advance of your due date. When you open a registry(store or online) you get a free gift – goody bag again with magazines and samples (mine had a bib, diapers, diaper rash cream, Avent feeding bottle and some manufacturers coupons for different items).
Apart from the stores discussed here, there a ton other places where you will get exclusive stuff – pottery barn kids, land of nod, etc. These stores also have registry options. You wouldn’t get the bang for your buck but the rich indulgence – yeah you’ll get that plenty
When its time to share your registry information, it becomes difficult to list all if you have one too many. Thats when you use thebump.com. Just launch that website, navigate to baby registry tab and search for your name. Most of your registries will be listed – I say most because BRU registries are not read by thebump. It’ll be an easy way to share your registry locations.
Given so many options for baby registries, I think you only need 2 – one online and one in-store – my choices are obviously amazon and buy buy baby.
Finding what you need
Ask google for a newborn shopping list and it will give you a ton of sites. The ones I found extremely useful were ConsumerReports.org and lucieslist.com. Buying an account on consumerreports would be a very good investment. Once you have an account, you will have access to baby product ratings, approximate prices / estimated values, best buy identifications for products in each category and a very useful newborn shopping list. Use the shopping list as a baseline – i felt the quantity listed was the bare minimum, in some cases I had to double the number Eg: they suggest you buy 4 sleepers in newborn size.Well I do laundry only once a week – so I just used my discretion and bought 7 instead. The reason I liked lucieslist was because it clearly states why a particular product was recommended. The reasons listed might make total sense to one person and but might not be so critical to another. But knowing and understanding the reasons for product recommendations helps you to make an informed choice.
My Shopping list
Essentials
1. Crib – Da Vinci Emily – consumer reports best buy – converts to a toddler bed – bought the full bed conversion kit as well – Amazon.com – I didn’t prefer a bassinet because you can max use it only until the baby turns 3 months
2. crib mattress – MDB Emily 2 in 1 – 260 coil – Amazon.com
3. car seat – Chicco keyfit 30 in romantic – I chose an infant seat and plan to buy a convertible after baby turns one: the benefit of not waking a newborn while moving her out of the vehicle outweighs every argument in favor of a convertible seat – consumer reports highly recommends this product in the infant seat category – try to see the color options in a store, they look completely different from the images online – comes with an infant boot cover – Amazon.com
4. extra car seat base for the other vehicle – Amazon.com
5. Stroller- Baby trend Snap N Go – I checked out all the travel system options and found them extremely bulky and hard to maneuver – I liked this stroller frame for its light weight, compact fold, ease of use and good price – plan to buy an umbrella stroller when baby is old enough to sit up on her own – snap n go + umbrella stroller is still cheaper than a whole travel system – Amazon.com
6. changing pad – Colgate 3 sided contoured pad – Buy Buy Baby – I have set it on my nightstand but haven’t fixed it in as my mom feels she would be more comfortable changing the baby on the bed
7. diaper genie elite – its more expensive than the arm and hammer one(initial cost and cost of refill bags) but when you weigh the reviews between the two, the diaper genie is rated better in keeping the smells out – most important factor for a diaper disposal – Amazon.com
8. diaper genie refill bags – Amazon.com (if you choose the Arm and Hammer diaper pail it takes ordinary trash bags)
9. Fisher price infant to toddler rocker – its a bouncer and a seat – Amazon.com – I plan to use this for baby’s daytime naps as its portable
10. Summer infant best view video monitor – Amazon.com
11. Ergo baby carrier – didn’t buy the newborn insert, will use a receiving blanket for head support instead – diapers.com
12. fisher price rainforest play mat – buy buy baby
13. baby book – buy buy baby
Linen
1. crib bedding set – 13 piece cotton set sold by GEENY through Amazon.com for $85 bucks – fitted sheet, dust ruffle, diaper stacker, toy holder, comforter, wall hangings, crib bumper
2. crib mobile – Lambs and Ivy mobile from Buy Buy Baby
3. receiving blankets – 4 – cotton flannel – Amazon.com
4. fitted crib sheets – 3 cotton – Amazon.com (on the mattress, put two alternating layers of waterproof pad and fitted crib sheets – it makes night time changes easy)
5. crib waterproof pads – 3 – Amazon.com
6. changing pad covers – 4 – Amazon.com
Bath & Grooming
1. Baby body wash – Johnson & Johnson natural head to toe foaming wash – 3 – I did not want anything with extra fragrances in it – Amazon.com
2. nursery essentials kit – look for one with a nasal aspirator that has an opening at the back for easy cleaning – nasal aspirator, thermometer, hair brush, nail clippers, nail file – Amazon.com
Feeding
1. Playtex drop-ins bottle starter set – Amazon.com
2. Playtex disposable 4oz 100 count liners – Amazon.com
3. bottle drying rack – Amazon.com
4. OXO bottle brush – with nipple cleaner and stand – the kind that stands on its own -Amazon.com
5. Munchkin dishwasher basket – for washing bottles and accessories in the dishwasher – Amazon.com
6. Boppy pillow – Buy Buy Baby
7. peanut shell nursing cover – diapers.com
Diapers and Changes
1. disposable changing pads – 36 count box – for use with the diaper bag – Amazon.com
2. Pampers swaddlers sensitive -120 count in the newborn size – there have been a lot of complaints about the dry max model, so I chose the sensitive instead – will buy more diapers after baby is born depending on birth weight – Amazon.com
3. Eddie Bauer diaper bag – buy buy baby
4. Diaper rash cream – Desitin – Costco
5. Baby wipes – Costco
6. sassy disposable diaper sacks – 200 count – diapers.com
Clothing
1. onesies – newborn (6) – 0 to 3 months (6)
2. footsies – newborn (5) – 0 to 3 months (2)
3. outfits – newborn (3) – 0 to 3 months(4) – 6 months (1) – 9 months (1)
4. socks – one size (6)
5. hats – one size (4)
6. bibs – 5
7. sleepsack – 1
8. swaddleme – 2 cotton infant size swaddlers – Amazon.com
Filed under: Career
Copyright: Taken from Ramit’s blog post
WEEK 3 RESULTS
“The short story – today I negotiated a work-from-home arrangement for 2 days per week from my full-time job, with no end date. My commute is 3 hours roundtrip per day, so this saves me 6 hours per week, which I can now spend with my wife and 1yr old daughter. Totally liberating, although it still hasn’t really hit me. Thanks to Ramit for the tips which helped me succeed at this. (and also to Tim Ferriss, I re-read the script in ‘Disappearing Act’ of 4HWW too)
The details –
I work at a large TBTF bank, managing a team of software developers. It’s review season, and I got my annual compensation communication last week, but by phone since I was on vacation. I was disappointed with the compensation (2% increase total from last year, despite ranking pretty well at 4 of 5). My goal: negotiate an increase in my “total compensation”. By the way, I know from research that I make a fair amount more than others in similar jobs, and my job is kinda cool, so I’m not really ready to run out the door.[RAMIT’S NOTE: Notice the amount of preparation Alex has put into his negotiation and the specificity of his goal. 85% of the work is done before you ever step foot in a room to interview or negotiate.]
Script –
Me: As I mentioned last week, I’m disappointed in my compensation this year, considering I performed well, and the bank did fairly well. [went through percentages last year, this year]. It would be one thing if I underperformed, but what really bothers me is the disconnect between performance and pay.
Boss: [checked my percentages, generally nodded, explained about bank performance and 'the way it works']
Me: This disconnect has really made my start to dislike my job. I felt this way last year, and hoped it would get better, but it hasn’t.[RAMIT’S NOTE: He’s expressing disappointment, not anger, and leading the conversation where he wants it to go. Predictably, the boss responds with a...]
Boss [look of concern]
Me: HOWEVER, I also understand your predicament. You have a lot of great performers which you’d like to pay well, but you are at the mercy of pre-determined money pools, and a company whose overall performance is out of your control, at the whim of markets and economies.
Boss [profuse nodding, almost smiling][RAMIT’S NOTE: What Alex just did was extremely sophisticated. He expressed disappointment, then re-framed the conversation to empathize with the boss’s situation. Notice how deeply he gets in his boss’s head -- he’s literally using the eaxct words his boss would use to describe his corporate shackles. When you are deeply in someone else’s head, you will see them irresistibly respond with nods, words like “EXACTLY,” and so on. And you are being ethical as you are simply describing their own situation, perhaps better than they could even articulate it. Alex is doing a masterful job.]
Me: So I’ve been thinking of ways out of this stalemate which don’t involve me leaving the company.
Boss: Oh well that is good, what are you thinking[RAMIT’S NOTE: This is the turning point in the conversation: The boss just essentially invited Alex to write his own ticket. But notice that it took weeks of thinking and planning to get to this point.]
Me: I’d like to propose working from home a few days a week on a regular basis. I am much more productive working from home, and the saved commute time would allow me to put in more hours without sacrificing work-life-balance. I could increase my performance, and also be happier with less commute, so it’s win-win. Of course I’d be in the office for meetings requiring my physical presence, and always available on cell.
Boss: Well that sounds ok, you don’t have to sell it to me. But how many days were you thinking?[RAMIT’S NOTE: “You don’t have to sell it to me.” That’s because he already successfully sold it with his research, top performance, and understanding of the situation. Negotiations don’t have to be a hard sell, which is precisely what Alex is demonstrating. The boss actually WANTS to give Alex his demands!]
Me: 3 days per week
Boss: That sounds like a little much, I’d feel much better about 2 days, which is less than half the time.
Me: Ok I think I can do 2 days.[RAMIT’S NOTE: Classic door-in-the-face technique.]
Boss: Ok good, let’s talk some more about your compensation numbers
Me: [blah blah not listening, huge grin on INSIDE, I can't believe he went for it]Tactics I used:
- Reviewed scripts of other similar situations, and picked key words to reuse
- Wrote out a loose script in advance
- Decided increasing pay was a non-starter at this point, so went for something else (tele-commuting)
- Decided 2 days would be great, so asked for 3 so I had something to give back
- Decided NOT to use the phrase “on a trial basis” on my wife’s recommendation, but instead keep it in my pocket. this was a good idea since I didn’t need it.
- Made a soft threat to quit to make the alternative seem less severe
- Showed I understand his side, and played to his desire to have happy employees and compensate them
- Practiced! I found a conference room 1 hour before to write my script and said it a few times out loud
- Timeboxing – I didn’t have a lot of time to work on this – total prep was 2 hours (15 mins at home night before, 45 mins on bus reading 4HWW & this post, 1 hour at office writing script & practicing). This made me focus, especially in that final hourResults, and why it’s good –
– even though it wasn’t dollars, 6 hours of my life back is worth a lot. also gives lots of flexibility to shift hours around. I increased my total compensation. actually it saves me $30 on commute per week also
- while I worked from home 2-3 times per month previously, a regular arrangement is unheard of, and 2 days/wk is absolutely crazy. Can’t believe I didn’t ask earlier.”
Filed under: Career
Copy of what’s posted at
http://www.freemoneyfinance.com/2010/11/career-insurance-insuring-your-most-valuable-asset.html
For the vast majority of people, their career is their most valuable financial asset. Nothing else they own is likely worth as much (several million dollars over a lifetime). And even if they do have something more valuable (like an investment portfolio), it was probably earned as a result of their career.
As with anything valuable, you need to take steps to protect your career. That’s why financial websites recommend life, health, and disability insurance — to protect/replace the value of your career in case you die, get sick, or are physically unable to work. Having some form of these insurances is generally wise for almost every worker. But there’s another form of insurance that’s equally essential.
This insurance is free, but it will take some work and planning. Its benefits go far beyond the time it takes to implement the steps involved. And in addition to increased income, this insurance may even give you more job satisfaction, less stress, and a longer life. Interested?
I’ll call it "Career Insurance" (creative name, huh?). This Career Insurance is not a product you can buy, but a series of actions you can proactively take to minimize the chance that your career will take a major hit.
These actions can help you avoid the following situations:
- Being fired or laid off. The negative impact of losing your job is not only loss of income but your career progress is halted. You lose valuable time which limits the compounding growth of your earnings. Plus, when you consider that many people have to take a step back career-wise when they finally do find a new position, you realize just how bad a firing or layoff can be.
- Long layoff time. Even taking steps to avoid firing and layoffs, they can still happen. If you are let go, you must focus on minimizing the time that your career is in limbo. The longer you are laid off, the longer your most valuable asset stagnates and the more likely you are to take a job that’s far below your previous level.
- Financial strain. This step doesn’t protect your career per se, but it minimizes the pain associated with losing a job. You’ll have less stress, more energy and extra time to focus on finding new work.
- Physically unable to work. No work = no pay. There are things you can do to prevent illness and injury as well as things you shouldn’t do to maintain good health.
You can protect yourself from these hazards and develop your own Career Insurance by taking the following steps:
Protection from Firing or Layoff
1. Make yourself more valuable/indispensible to your employer. Let’s face it, even in the worst environment imaginable, the ones who keep the ship afloat are the last ones fired from the crew. So deliver more than what’s expected for your position (and more than most or all others in your organization/department). In particular, if you can contribute to the organization’s bottom line on a regular basis by saving it money and/or growing revenue, you’re usually untouchable. Oh, and don’t forget to be likeable as well. Yes, producing jerks are still kept on staff, but they are fired before productive nice guys.
2. Get a mentor. Having someone above you in the organization who can guide and direct you has many benefits. A mentor can help propel your career by making you more effective, help you accomplish more, and pave the way for promotions and raises. All of these are great reasons for having a mentor. But there are other benefits — Career Insurance benefits. A mentor can watch your back when firings and layoffs occur. He may put in a good report for you in key meetings. At the least, he might be able to give you advanced warnings as to when layoffs could be coming, so you can get a jump on finding a new job.
3. Network inside the company. In addition to having a mentor, you should develop good contacts throughout the company at various levels. Again, these can help protect you in troubled times. Once when my company was facing layoffs, I had another executive speak up on behalf of one of my employees because she had also worked with his department on a key project. In the end, his defense helped sway committee decisions and she was able to keep her job. In short, you never know how or when someone can help you, but the more people you have looking our for your best interests, the better off you are.
Protection to Minimize Layoff Time
1. Network to develop contacts outside your company. Networking is a key way to grow your career. One major benefit: it connects you with people who can assist you in finding new work. Statistics show that a majority of jobs are placed by networking, so the bigger your network, the better chance that you can use it to find a suitable job quickly. So work to broaden your contacts through lunch dates, seminars, trade shows, industry events, volunteer activities, social media, common interests, and more. And of course, a network doesn’t only work when you are out of work. It’s helpful when you’re employed and want to make a change too.
2. Refresh your resume. You should keep track of your work accomplishments on a regular basis — it’s part of a systematic way to get raises and promotions – so you’ll always have a handy list of what you’ve done and how you’ve performed. (BTW, having a system will make sure you don’t forget anything major.) These will allow you to develop an updated resume immediately if you’re let go. In addition, your list will allow you to be sure your resume is full of high-end accomplishments. Update your resume as quickly as possible and get it out to your network pronto.
3. Get an employment contract. While this won’t get you a job faster, it will basically extend your current income for a period of time. The ultimate in protection, an employment contract is usually held by top-level executives and other key personnel. But if you can obtain this status, you know that even if you’re let go, your company will have to pay your salary for the stipulated amount of time — usually six months or a year — even if they fire you. Usually this is more than enough time to find new employment without disrupting your career.
Protection to Minimize Financial Strain
1. Develop outside streams of income. If you get fired, one way to cushion the blow is to have income from other sources. It might not provide the level of earnings you’re used to, but SOME money coming in is certainly better than NO money coming in. Suggestions to bring in more money: develop a hobby as a business, start your own business on weekends or evenings (I like to referee soccer matches), and work on growing your investments (if you have savings/investments they can sometimes be reallocated to produce income.) Consider all the ways that you might be able to earn more money, select one or two that work for you, and start now in getting them developed. Even if you never need them in case of a job loss, the extra income will still come in handy.
2. Increase the amount in your emergency fund. A key reason for having an emergency fund is to provide for your needs in case you lose your job. And the less stable your job situtaion (or the more likely a layoff could be coming), the higher amount you need in an emergency fund. Almost everyone should have at least six months of living expenses saved up in case of a loss in income. If you’re in an uncertain industry, company, or position, work now to bump that up to give yourself protection comensurate with your risk.
Protection from Not Being Able to Work
1. Disability Insurance. Yes, this is a traditional insurance product, so maybe it shouldn’t be part of this post. But it’s also probably the most ignored insurance product on the market — and yet it protects your largest asset. You MUST get some sort of disability insurance coverage. Sometimes this will be provided through your employer, but many times the level of coverage is not adequate. Make sure any disability policy you have will replace at least 60% of your income and will kick in before your emergency fund runs dry.
2. Keep/get in good shape. If your body isn’t functioning fully, you can’t work to your full potential (which isn’t good for your job security.) So follow mom’s suggestions: eat properly, get plenty of rest, exercise, drink water, and keep stress as low as possible.
3. Take precautions against sickness. If you’re sick, you can’t work. At a minimum it will cost you valuable vacation time. And feeling poorly always negatively impacts your performance. So follow mom’s other set of instructions: wash your hands (especially during cold and flu season), take action at the first signs of sickness (drink fluids and get plenty of rest), seek medical help when needed, and "don’t smoke, drink, or chew or hang with those that do". By taking care of your body, you’ll not only be a better employee, you could also get the added benefit of prolonging your life.
Of course, no plan will work 100% of the time. Despite all of these precautions, the perfect storm could occur and sidetrack your career a bit. But Career Insurance will certainly help you weather the storm, minimize any damage, and ultimately move your career along. So get started today developing your own Career Insurance and ensure that your most valuable financial asset is protected the way it should be.
Filed under: Uncategorized
Nice summary from Excelsior
Convert Java to EXE – Why, When, When Not and How
If you are sure you need a real EXE, go straight to AOT Compilers.
"How do I make an .EXE file from my Java application?", "Need help converting jar to exe", "Is it possible to create a Windows executable using Java?" — these and similar questions are among the most popular topics on Java developer forums. Should you start such a topic today, you are likely to encounter the following three types of replies:
- "You cannot"
- "You should not, because that would kill the very purpose of Java"
- "You can do that with third party software X and Y"
The truth is that there exist two completely different approaches to the creation of native executables from Java applications, addressing different sets of problems. Moreover, under certain conditions some of those problems may be solved without making an EXE. So the most correct way to reply to such a post would be a request for more information, namely what is the goal of conversion to EXE. And the most frequent answer would be
Java starts too slow?
Improve startup time of your Java applications.
Java compiles to platform-independent bytecode (.class files), which is not directly supported by PC hardware. So a Java program needs a Java Runtime Environment (JRE) to run, which would either interpret the bytecode instructions or compile them to native code on the fly. This in turn means that the author of that program has to ensure somehow that the proper version of the JRE is installed on an end user system.
In a general case you may not expect that your end users will know what a JRE is, how to check its version, and how to download and install it. This is especially true for consumer applications, such as games or multimedia. And those who already have a JRE installed may not like the idea about installing a different version, because it may break their existing Java applications and favorite applets.
Then, even if you can make sure the right version of the JRE is properly installed on enduser systems, which is quite possible in a classroom or enterprise environment, the command line required to launch your Java application can be quite long:
java -Xmx200m -cp whatever.jar -Dsome.property MyApp
Yes, you may put that line into a batch file and call it runme.bat, but it looks so much easier to give your program to a friend, teacher or colleague as a single file that can be run by a double-click. Or, even better, enable it to be installed and uninstalled in a native manner without affecting other applications.
So it comes as no surprise that the primary motivation for seeking a way to convert a Java application into an EXE file is to make its deployment and use simpler and safer for an average user, that is, a Windows user. What surprises newbie Java developers is that the JDK does not offer such functionality. Before J2SE 1.4, all you could make with JDK tools were
Pros
No need to use any third-party tools
Single distribution for all Java-enabled platforms
Cons
Application will not start on systems that do not have a JRE (properly) installed
Application will not work if it uses APIs absent in the default JRE
Need to teach users that .JAR files are clickable
Resources
The Java Archive (JAR) File Format
Tools
One-JAR
Autojar
Fat Jar
Java LauncherYou can make your Java application runnable via a double-click by packaging it into a so called executable jar. You do that by specifying the main class of your application, any extra jar files it may require and so on in the jar’s manifest file
Main-Class: MyAppMain
Class-Path: mylib.jarThen you use the jar utility from the Java SDK to package your classes and resource files, specifying the m option and the name of your manifest file:
jar cvfm MyApp.jar MyApp.mf *.class *.gif
This will result in the creation of MyApp.jar. Now, if you type
java -jar MyApp.jar
the Java launcher will read the manifest from MyApp.jar and invoke the main method from the class MyAppMain. Moreover, if you double-click that jar file on a system that has JRE installed, the java launcher will be invoked automatically.
Note: As of J2SE 5.0, jar files are associated with the javaw launcher on Windows, which does not open a console on startup. If your application needs a console, write a batch file which would start it using the java launcher.
If your application consists of more than one jar file, there is an open source tool called One-JAR that claims to correctly repackage multiple jars into one.
The major problem with executable jars is compatibility. The default JRE may be of an older version than is required by your application or may not have the necessary Java Optional Packages (previously known as Standard Extensions) installed. For instance, if your app uses the java.nio package introduced in Java 2 version 1.4, it will not work on JRE 1.3.x. Similarly, if it uses JavaMail 1.3, and the default JRE has JavaMail 1.2 or JavaMail is not present at all, the double-clicked jar will not run.
Fortunately, Sun has created a Java application deployment technology that eliminates this compatibility problem and adds some nice features. It is part of the Java 2 platform since version 1.4 and is called
Pros
Available for all major desktop platforms
Single distribution for all JWS-enabled platforms
Code-signing and sandboxing
Versioning and incremental updates
Automatic installation of JREs and optional packages
Use of third-party tools is optional
Cons
Internet connectivity required if JWS, JRE, and/or an Optional Package is not present on the system
Support for jnlp MIME type required on both Web server and browser
Limited desktop integration capabilities
Resources
Deploying Software with JNLP and Java™ Web Start
Java Web Start
(Roedy Green’s Java Glossary)Tools
Xito Application Manager
DeployDirectorJava Web Start (JWS) and the underlying Java Network Launch Protocol (JNLP) enable Java application delivery from a standard Web server. The end user initiates application installation by clicking on an URL. If the Java Web Start engine is not present on the system, the user is prompted to download and install it. Once Java Web Start is in place, clicking on the same URL will initiate the application download and installation procedures. It may involve download and installation of the required version of the JRE and Optional Packages. Upon their successful completion, the application is launched. The application will be cached on the user’s system so next time the user clicks on the same URL, the JWS engine will launch the local copy of the application from the cache, if it detects that the computer is offline or the application was not updated on the Web site.
Another important feature of JWS is its ability to run your application in a sandbox – a restricted container based on Java security architecture. But, unlike an applet, your application can gain access to local system resources like the filesystem, printer and system clipboard using the JNLP API even if it comes from an untrusted environment, after prompting the user for confirmation.
Java Web Start is available for Windows, Linux, and Solaris, and is part of MacOS X since v10.1. There are also third-party implementations of the JNLP protocol, some of them also include tools that assist you in the creation and maintenance of JNLP packages.
That was the bright side. Now, what is not so good about JNLP? First off, for seamless operation both the browser and the Web server that hosts the JNLP-enabled application must support application/x-java-jnlp-file MIME type. Some hosting providers do not support it. Moreover, versioning and incremental updates require additional support from the Web server, which has to be implemented using servlets, cgi-bin scripts, etc.
On the client side, a major browser would be configured to recognize the above MIME type during installation of the JWS engine, but users of less popular browsers, such as Opera, may have to do that manually.
JNLP-enabling an application may involve minor changes in its code and (re)packaging it into a set of jar files.
Before J2SE 5.0, JWS had very little to offer in terms of desktop integration – all it could do was create a desktop icon and/or a Start Menu entry for the application. On Windows, the application will not show up in Add/Remove Programs, so end users would have to run the Java Web Start application manager in order to remove your application.
Finally, JWS user interface needs much polishing. As of J2SE 5.0, users still complain about ugly windows with incomprehensible messages.
To sum it up, JWS can be a viable option in a controlled environment, such as corporate intranet, but it is not ready for the consumer market, where you may be better off using
When a Java program is invoked using one of the methods discussed above (batch file, executable jar, or Java Web Start/JNLP), the operating system runs a Java launcher from the JRE. The Windows version of the JRE has separate launchers for command-line and GUI apps, called java.exe and javaw.exe respectively.
As a result, all running Java applications have the same Taskbar/Alt-Tab icons and appear in the Windows Task Manager as either java.exe or javaw.exe. If you have two or more Java apps running, you have no means to distinguish between multiple instances of the standard Java launcher in the Task Manager.
In fact, those launchers are just small native programs that load the Java Virtual Machine from a DLL/shared library and then feed your program to that JVM using the Invocation API. That API is part of the Java Native Interface (JNI), so it is standardized, and it is also very simple. This makes it relatively easy to write your own launcher with a unique name and icon. What it has to do is find a suitable JRE on the end user’s system (unless you bundle the JRE with your application), load and initialize the JVM, and run your application on it.
If you do not have the right tools, skills, or time to develop a custom launcher for your Java application, there are quite a few third-party Java launcher generators listed in the Tools section of the frame. Some of them provide additional features such as instant splash screen, stdout and stderr redirection, and so on, the most notable being wrapping.
A Java wrapper is essentially a custom Java launcher that is also a self-extracting archive containing all the application’s classes, jars and auxiliary files. The wrapper unpacks those files on startup and removes on termination. This way, your application is distributed as a single executable.
A wrapper normally looks up the JRE upon startup. If the JRE is not present or its version does not match the application’s compatibility requirements, some wrappers may install the JRE (if you have included it when wrapping your application) and/or download and install the required version of the JRE.
The most sophisticated wrappers may also setup file associations and create shortcuts on first run. But if you need something more complex, such as support for automatic updates or uniform cross-platform deployment, have a look at
If all you need is install a private copy of the JRE alongside your application and create shortcuts that run your application on that JRE, you may use any setup generator. However, using a Java-aware tool may give you the following benefits:
- Install-time JRE detection and download
- Generation of native launchers
- User-editable JVM parameter files
- Redirection of stderr and stdout for saving logs and exception stack traces.
- Registration of Java applications as Windows services and Unix daemons
This category is the most diversified in terms of tool pricing and functionality. The differences are explained below by example.
Windows-centric tools, such as Advanced Installer for Java enable you to build MSI (Windows Installer) packages.
Multi-platform tools can generate native installers for multiple platforms – Windows, Linux, Mac OS X, as well as RPMs and tarballs. install4j is one such tool.
There exist also Java-based setup authoring tools enabling you to create cross-platform installations, Those installations are essentially executable jars with platform-specific logic selected at run time. InstallAnywhere is perhaps the most well known tool of this type, but if its pricing is beyond your budget, consider the cheaper JExpress or the open source IzPack.
Finally, there is One Tool to Rule Them All – InstallShield, which can create both Windows desktop (MSI) and cross-platform installations, plus server and mobile ones, for any type of application and for a multitude of platforms. And yes, it does support JRE lookup and bundling, native launchers, and so on.
For straightforward installations, however, InstallShield is an overkill. Also note that InstallAnywhere and InstallShield are aimed at the enterprise developer and are priced accordingly.
All the above solutions do not change the fundamental principle mentioned in the first section of this article. Whether you make an executable jar or create a sophisticated installer, your Java program is still deployed as platform-independent bytecode. In the early days of Java, the only way to execute a Java program on a common PC hardware was to interpret that bytecode. Today, any decent J2SE implementation contains a Just-In-Time (JIT) compiler that compiles frequently executed methods to native code. So it sounds quite natural to take one step further and compile the entire application down to native code before it is deployed. Such tools exist and they are called
AOT compilers are known also as "static compilers" and "native code compilers". The latter term is the most used and, as it often happens, the least correct from the technical standpoint, because JIT compilers also produce native code.
An Ahead-Of-Time (AOT) compiler takes as input your jars and class files and produces a conventional native executable for the target platform, such as Windows EXE or Linux ELF binary. Just like any other technical solution, this has its advantages and drawbacks.
Advantages
Performance. A JIT compiler works at application’s runtime and shares CPU and memory resources with the application it compiles and possibly other applications. An AOT compiler runs on the developer’s system with no resource or compilation time constraints. Therefore it can potentially use more powerful resource-intensive optimizations, yielding better code.
This advantage is amplified if you application will be deployed to embedded systems or low-end desktop PCs, where the JIT compilers simply may not have enough resources to work.
Intellectual Property Protection. Java bytecode is very easy to decompile – just google for "download java decompiler" and you will get your source code back in 5 minutes. Yes, you may obfuscate names of public classes and methods not accessed via reflection, but control flow obfuscation can render your bytecode unverifiable on future JVMs and hinders optimizations implemented in JIT compilers. Finally, encrypting your Java bytecode does not protect it at all regardless of the encryption algorithm you use.
In contrast, native code produced by an optimizing AOT Java compiler is about as hard to reverse engineer as if you have coded the original program in C++. Needless to say, there is no performance loss. If you are concerned about protecting your intellectual property, have a closer look at native compilation.
User Perception. Java client applications often suffer from the so called warm-up cycle syndrome. Starting up a Java application involves bytecode interpretation, profiling and JIT-compilation. So Java programs tend to start much longer than their native counterparts and the initial response time of a Java app GUI element is much worse than after it has been used several times, which are the two major reasons for Java still being perceived as slow by many users.
A native executable runs directly on hardware, without the interpret-profile-compile overhead, so it may start faster and immediately demonstrates the best response times.
Native deployment. Even the most sophisticated Java-aware setup tools have to generate native launchers for better desktop integration, and may need to take care of the JRE download and installation.
Executables produced by an AOT Java compiler do not depend on the JRE and can be deployed using any setup authoring tool available for the target platform. Moreover, AOT compilers may come with specifically tailored setup generators that create compact, professional installers.
Drawbacks
Dynamic applications. Classes that the application loads dynamically at runtime may be unavailable to the application developer. These can be third-party plug-ins, dynamic proxies and other classes generated at runtime and so on. So the runtime system has to include a Java bytecode interpreter and/or a JIT compiler.
Moreover, in the general case only classes that are loaded by either system or application classloader may be precompiled to native code. So applications that use custom classloaders may only be partially precompiled, unless the AOT compiler and runtime are aware of those specific classloaders’ behavior. For instance, Eclipse RCP applications may be fully compiled despite all but a few hundred startup classes being loaded by OSGi classloaders.
- Hardware-specific optimizations. A JIT compiler has a potential advantage over AOT compilers in that it can select code generation patterns according to the actual hardware on which the application is executing. For instance, it may use Intel MMX/SSE/SSE2 extensions to speedup floating point calculations. An AOT compiler must either produce code for the lowest common denominator or apply versioning to the most CPU-intensive methods, which may result in code size increase.
Misconceptions
Java bytecode had been originally designed for compactness, so it has a much higher level than a typical CPU instruction set and takes less space than the equivalent machine code for a real-world general purpose processor, such as Intel x86. But Java class files contain not only code. The amount of symbolic information in Java class files has grown dramatically over the years due to the development of numerous APIs and their package structure. So now there is not much difference in disk footprint between the original and AOT-compiled forms of an application, and the download size can be even smaller than the size of the JRE.
There is also a common misconception that AOT compilation kills Java portability. This is not the case, because the source code need not be changed, so you can always deploy your application as bytecode to a platform for which you do not have an AOT compiler. (This would of course blow the advantage of IP protection away.)
Tools
There used to be half a dozen AOT Java compilers on the market in the year 2000, but the only two that have survived are Excelsior JET and GCJ (GNU Compiler for Java). You will find a side-by-side comparison of these products in the Bonus Features section below.
If you are in the embedded field, check out Aonix PERC, which targets J2ME CDC and also has limited support for J2SE 1.3.
This concludes the main part of the article. I update it regularly, so if you have any comments or know of resource/tools URLs which I should have added, please send them to me.
Please also do not hesitate to contact me if you need help in optimizing, protecting and/or deploying your Java applications.
Disclaimer:
I work for the company that makes Excelsior JET, so skip this section if you believe it is going to be a shameless plug.
Target Platforms. As of February 2009, the official GCJ Status page lists 15 supported targets, from "bare metal" ARM and XScale to IBM s390x mainframes. Some of the targets, most notably Windows, are not fully supported, though. Excelsior JET supports Windows and Linux on Intel x86 at the moment. The Windows version has been on the market since the year 2000, the Linux version joined it in 2004 so both are quite mature by now.
Standard Compliance. GCJ has not passed the Sun’s official Java Compatibility Kit (JCK) test suite and is quite far from even attempting to do that. The major reason is that the GCJ runtime library, libgcj, is an open source clean-room implementation of the core Java API classes, and thus is way behind Sun developments. At the moment GCJ may only compile graphical applications built using third-party AWT-independent GUI toolkits, such as SWT.
libgcj is being slowly merged with GNU Classpath. The unofficial compatibility testing results for GNU Classpath claim that it includes most, but not all of the JDK 1.4 API features as of Sep 2007 (the last time the tests were run.) Note however that the data used to back that claim is not being produced by running the JCK, so they can only confirm availability, not compatibility of the respective APIs.
Excelsior is a Java Authorized Licensee, and its product uses the licensed Sun’s implementations of the latest Java SE 6 API. Excelsior JET is certified Java Compatible on a number of Windows and Linux platforms.
Dynamic Class Loading. Both products support dynamic class loading. The GCJ runtime runs dynamically loaded classes on an interpreter, whereas the Excelsior JET runtime features a JIT compiler. The latter may cache compilation results to disk and reuse them on subsequent application launches.
Deployment facilities. GCJ is just a compiler; you are responsible for choosing a third-party deployment tool and setting it up for packaging of the executables GCJ produces.
Excelsior JET includes a toolkit that enables you to create compact Windows and Linux installers, or integrate easily with third-party setup generators. You may also compile your Java applications into Windows services.
Price. GCJ and libgcj are open source (GPL) and therefore can be freely downloaded, modified and distributed. Note that ‘libgcc exception’ applies to libgcj, so linking with it does not by itself cause your program to fall under the GPL.
Commercial use Excelsior JET licenses start from $1,200 per developer. Big discounts are available to very small companies through the Microbusiness Licensing Program. Academic discounts are also available. Finally, authors of free, non-commercial Java programs can apply for a free license.
Deployment to general purpose desktops and servers is royalty-free, but runtime fees apply if you deploy your application to embedded systems.
Mr. Andrew Fedoniouk has pointed my attention to his past project called J-SMILE that aimed at enabling the creation of Java GUI apps that would run without any JRE. It was essentially a combination of the Waba VM and a small GUI API, which could be packaged together with your application class files into a sub-one-megabyte executable.
If you know of any other interesting attempts to get rid of the JRE, please send them to me.
Filed under: Values
Very thoughtful on a Costco membership loophole post
I love to save money but, I value honesty more than I value a bargain. My 16 year old backed into a neighbor’s car. No one saw it and my MIL told us to tell the police that my husband was driving so our insurance wouldn’t go up on a minor driver. I told her that it would save us money but cost so much more in teaching all of my kids to lie. I would rather pay more in insurance than to have earned the disrespect of my children.
Filed under: Grocery
Asparagus – late April and early May
Broccoli – late February and March
Cauliflower – late March and April
Cranberries – October
Oranges (all but Valencia) – December
Raspberries – mid-August
Strawberries – late June through early August
Sweet Corn – early August to early September
Turnips – February
Watermelon – July
Filed under: Immigration
The USCIS issued instructions
(PDF 32.7KB) August 6, 2009 on how to follow up on cases pending at the USCIS service centers. These instructions should be followed by individuals and organizations inquiring about timelines and generic information. One should NOT rely on general information from the government for legal options, analysis of a particular situation, or advice on how to proceed in a particular immigration case.
First Step : Call NCSC’s Toll-Free Number
The first step in the instructions is to call the National Customer Service Center (NCSC) at their phone number (1.800.375.5283). It is necessary to have the USCIS receipt number and other case-related, identifying information in order to make such inquiries.
It is suggested that one keep the name and/or ID number of the person with whom s/he speaks, as well as the date and time of the call. One should also keep any service request referral number, if there is action taken on the case.
Second Step : eMail Service Center after 30 days
If the NCSC has not been able to resolve the particular matter within 30 days, then it is possible to send an eMail to the service center that has the case. In order to use the eMail service, it is necessary to have the information regarding the initial call to the NCSC; that is, the name and/or ID number of the representative, date and time of the call, and the service request referral number. If no service referral was made, it is necessary to indicate why the NCSC did not take this action.
The eMail addresses for this purpose are as follows:
California Service Center : csc-ncsc-followup@dhs.gov
Vermont Service Center : vsc.ncscfollowup@dhs.gov
Nebraska Service Center : ncscfollowup.nsc@dhs.gov
Texas Service Center : tsc.ncscfollowup@dhs.gov
Third Step : eMail to USCIS Headquarters
If there is still no resolution in the case after 21 days of sending the eMail described in step two, it is possible to eMail the USCIS Headquarters Office of Service Center Operations. This eMail address is SCOPSSCATA@dhs.gov. The USCIS promises a response to these inquiries within ten days.
Conclusion : General Information No Substitute for Legal Advice
Potentially, the case follow-up procedures can be helpful for many situations. Each step requires a waiting time, however. In some situations, such as case denials with time-sensitive deadlines, it is not advisable to wait for NCSC action. There are deadlines (often only 30 days and sometimes 15 days) for challenging certain USCIS decisions. If a case is denied, or if one encounters serious problems otherwise, it is necessary to obtain proper legal advice and not assume that a call to the NCSC is all that is needed.
It should be noted that calls to the NCSC are answered by individuals who provide general immigration information based on scripts. Responses to one’s inquiry should be considered only as a general guideline, and not as a substitute for proper legal advice. We at the Murthy Law Firm sometimes speak with individuals who wish to make an immigration filing, because they think that the NCSC told them they could do so. They may have been told that, in order to do what they wish to do, it is necessary to file a certain form. However, NCSC does not evaluate whether one is legally eligible to file, whether it is the correct procedure for that individual or family, or if other considerations exist that may completely change the equation. Speaking with a knowledgeable lawyer for case-specific, individualized advice as to one’s immigration options is a safer and, actually, much less expensive option in the long run. The NCSC should be used for case follow up and general immigration information only.
