I'm in the process of trying to self-publish some short stories now. The old way of doing this was to find a magazine or anthology related to short works - most of which are extinct today. Like Wikipedia killed Britannica and Encarta, the flood of free quality content today is killing the traditional ways of becoming renown. Trouble is there is so much (and more crud) its getting harder to find - drowning in entropy. The bigger shops like Amazon have done a good job on Kindle Direct Publishing, but the problem is it only seems to work for established authors. And its a fractured market. Even with the Kindle App, a lot of people won't use it... so as a self-publisher you've got to explore other publishing media too (like Kobo, B&N [that doesn't support Canadian authors], iBooks [that requires a Mac and multiple publish steps], and Google Play books [that is so awkward to use many people don't bother]. A publish, stream service kind of makes sense. Writers are burned by royalties anyway. (http://www.forbes.com/sites/georgeanders/2014/07/21/why-amazon-terrifies-publishers-lets-look-at-royalty-statements/) Amazon - 30% for under $1. Kobo is 45%. And who would pay $1 for a short story when they can buy a novel for a $1? Or even get something free. The price is becoming less meaningful. Amazon will still likely push work through the service that is promoted - leaving out self publishers.
Shameless plug: I'm blogging about my experiences trying these things here (http://selfloathingit.blogspot.ca).
Students of genetics know that organisms with short life spans and simpler structures evolve much quicker that complex organisms.
A while back I had an idea to modify saccharomyces cerevisiae to include code for generating ligninase, xylanase, and cellulase. This would allow me to brew alcohol from wood etc. Presently the enzymes are harvested from aspergillus niger. Production and recovery are expensive.
So in comes a brewing bacteria that can "liquify wood." Wait. What if this bacteria were released into the environment in an uncontrolled fasion? What if it mutates? Wouldn't the result be catastrophic?
Bob, clippy, and any other gadget that imposes its will upon you by default is a bad idea. People hate being told what to do, especially when something grabs UI focus from you and makes a non-modal process a modal one. Rule No. 1 of UI design is let the user focus on the task. Distracting the user... what were they thinking? I have years of pent up Clippy hatred because my Office technology is stuck at 97 and 2000 (by choice.) First thing I always get to do is try and recall how to turn them off. BOB IS ABOMINATION! Please let it die. Take WGA next.
This was a god send to me, after VMWare Converter could not/would not convert a machine of mine, even after registry and driver cleaning, it just failed near the end without a meaningful error message in the log.
I used disk2vhd, booted up the image in VirtualBox, and bingo - working image.
I'm very happy to hear it. Once upon a time I worked for a company that kept metrics on all its projects, and we (developers) used these metrics to validate our time estimates. We didn't measure current projects in % done; we measured by function point achieved. Sounds similar to what you mention. It was one of the most stress free times in my life, as they also had effective change management. These things are counter to the manifesto.
Some would recognize this as farmer speak for selling a blind horse, and after RTFM, where refactoring and work and revising guesses, the article called "Unskilled and Unaware" comes to mind. This article's basic premise is that people who are clueless tend to overestimate their ability.
In the old days, and with most engineering disciplines, costing is a quantified, factored skill. It is not an art. People with a great deal of experience, or whom have access to metrics, can cost building billion dollar chemical plants with reasonable error rates. It all comes down to experience, or metrics in another form.
First, you record how long it takes you to do something, and how complex it was, and how much risk there was. This knowledge can be used and applied to even unrelated projects. The biggest excuse I hear in software development is that we can't cost this because we haven't done it before. Bullshit. Remember design patterns? Someone has done it before. And it doesn't take much to figure out that something you are doing is either highly complex (and arguably requiring decomposition), or highly risky, and then cost it appropriately.
Then for those high risk items, apply a strategy like rapid prototyping, or spiral software (risk based) development practices.
Bullshit to the quality vs functionality argument too. The triangle of cost vs quality vs time or function does not take into account any of the elements for succesful project delivery, like experienced management, experienced leads, a positive working environment (read no asshole driven development), and people that actually think management is mo betta than leadership.
Your executive (or usually the administrative secretaries) should communicate to you what they want. If they are not giving you an indication of the metrics they want, and they're leaving it to you, then you have the danger of boring them with useless and irrelevant information. Not repeating the 30k feet, brief, don't use IT speak comments; you likely want to engage someone close to them to figure out what metrics you gather, or can gather, and which are actually meaningful from the BI view. Oddly, information by itself is useless. Let me explain... I work for big oil/gas company (doing corporate reporting). One thing I provide is spill reports. They use this to scorecard divisions (for bonuses). But the information itself isn't very useful, because it doesn't say what products are spilled (specifically sometimes huge numbers come out re fresh water spills, and these are reportable to govt., but not as dangerous as sour gas...). The divisional guys get really annoyed because they're compared to previous years (so its spilled volume over time), and they really want me to speciate by operation or commodity, but I can't because the executive committee in charge doesn't care. They want ONE line item for an overall metric in one area of the business. So to reiterate, its really important to talk with them or someone close to them to figure out what is useful and what the "destination" is. Process improvement? Health check? Benefits/bonuses? Lots of categories to chose from.
I would like to have... 1) a cell phone that looks like a TOS communicator (one vaporphone was the Sona Mobile themed phone) 2) a micro-lab that looks like a TOS tricorder (hell, I'd be happy with GPS, temperature, and humidity sensors in a stylish box) 3) a laser pointer that looks like a TOS phaser (that would absolutely get attention in meetings)
You don't have to do custom programming; you can use a modification of edge detection to generate a texture map; effectively same color at different luminosity would drive the topology mapping.
Re:Microserfs
on
Coders At Work
·
· Score: 5, Informative
Nah, Death March by Yourdon. I re-read it frequently and it never loses its luster.
Wow. How can you prove something like this... I know mathematical induction and various finite automata tests were used in my old school days to prove software worked... but something as complicated as this.
In any event, an inductive hypothesis in software is tripe. Unless you can formally describe all states, you usually have an unbounded problem, and people test (and prove) positive case. There are just way too many states.
Just like Bjarne said Proof by analogy is fraud... and induction is akin to analogy.
As with any software process, there are right and wrong things to do. First, the formal code review where invitees don't review the code in advance are pointless. Usually there is so much to go over, even if these are scheduled frequently, that anything more than surface is missed.
And then when you have a developer do a package and walk through, there are people not to invite. I've been in reviews where all but one of the reviewees took it seriously, and the one that did not, effectively wanted to review everything in the meeting because they didn't study the prep. Only invite reviewers that take it seriously.
A lot of unorganized code reviews degenerate into style comments and surface stuff. This doesn't help; the most important thing is to have reviewers that bring in their own findings like an audit. You can delegate things from developer to reviewer, like one reviewer could run through a profiler (ie java findbugs), another through metrics (ie java metricsreloaded), or another with specific data structures and algorithms expertise or concurrency attention. So... each reviewer can have a role. Each reviewer is a subject matter expert.
The best ones in my opinion are where the developer runs the code through a metrics tool to identify hotspots, like complex code, or things that have complex entry/exit conditions. Things where the developer actively wants to solicit opinions. Like... "How the heck can I test this?"
Again it falls to the people though. Artifacts are really important, as are action items and follow up. Another example; one review I was in we spotted a developer using floats for guids. We explained why this was a really bad idea, but because we didn't follow up on it, and neither did the developer, I spent a week hunting down a duplicate spurrious guid conflict. The team was pretty upset with the developer for not actioning a fix, but our management believed that buy in to process was optional...
Good luck. Reviews show professional acumen, but there needs to be some discipline in the prep, review, and follow up.
I've known too many software developers; even with redundant systems written to the same requirements, I'd never trust the requirements were complete, and I'd never trust that the testing covered "the negative case." Many requirements are missed, and most test cases are to a postive case (so you only have a subset of known inputs and outputs for simple, selected execution paths.)
Also, a plane that is breaking up in the air will send in interesting results via automated systems... totally off topic.
I appreciate your concern for me, and you both have given me hope because as opposed to pointless name calling, the discussion ended amicably! Good job!
Unfortunately I won't use a proxy; not that I'm not technically inclined; but because I have a little voice in the back of my head saying its not ethical. If hulu, adult swim, or any other content provider doesn't want me to have content... fine. I won't support them.
I learned about Hulu because on a Canadian news network they touted how great it was. When I checked it out, I discovered that Canadians couldn't use it... Only reason my wife and I checked it out was to try see the contraversial Palin/Clinton SNL clip we heard about. I think I can live without seeing it.
People need to ask the question, what is the business driver for an enterprise to spend money on OpenSource? The argument will be, enterprise will likely be a consumer only of the product, because there is no value to the business in spending money on enhancing any OpenSource project because its likely not a competency of said company. Restated; why should a big energy company invest in mysql's development? They're a consumer, not a producer of said technology. Now... if said big company needs to fix some glitch in an OpenSource project; well; they're obliged by license to contribute. But very few big companies have the internal expertise to do that [because again, they're probably not in that business.]
So its really a battle for mindshare and credibility. If you have an enterprise using OpenSource, it justifies its existence, and the spin off consulting to actual OpenSource champions/contributors is where the money is.
I started playing everquest in 2001. At first I refused to play, but friends pretty much bought the game and installed it on my PC. I refused to play because I figured I'd get addicted... and sure enough... 7 years later... I went cold turkey. There are a few things that I realized about my own addiction that helped me break it.
First, MMOs are Skinner boxes. http://en.wikipedia.org/wiki/Operant_conditioning_chamber They let the player feel like they're accomplishing something. This is a huge motivator when in your real life, the rewards are missing from any effort. For me, I had just got divorced and had a company I help start shoot down the toilet. Suffices to say, I was at a motivational low.
So, to figure out the trap (Skinner box), you need to figure out how to get the rewards in real life that are missing. A psychologist might suggest sitting with your friend and actually setting achievable, short term, real world goals. Even if it is as simple as going for a 30 minute walk. Then emphasize the "Hey, I did something today." You might even want to try something that gives other rewards, like adrenaline, through running, or some sport.
Next, there was the social aspect. People in MMOs believe the social context missing from their lives is real - that you actually have friends in the game. This is pretty far from the truth. Sure, I got to know a few people well in my EQ experience, but not one of them has participated in a relationship outside the game. So, some brutal realities there...
Anyway, I've been EQ free over six months. I refuse to play another MMO, ever. When you look at the total time played, and you see that you've been online 300+ days... ask the question, if you had a year of time back, what would you do with it? Sit in front of a computer screen like a zombie? Or actually try accomplish something. People often say they don't have time for stuff. Pretty sobering to look at some metrics. And real addicts underestimate how much time they play.
All the amazing solutions that I've had while asleep or in delerium have always seemed really good for the 30 minutes of furious waking coding... before the "What the f**k is this garbage? It will never work..." gets shouted out.
Many moons ago I thought about doing a doctorate in computer science. Knowledge sciences were very cool, AI was mostly a dead topic, and... I disagreed with most everything I read on the topic of KS/AI. I had many of my own ideas, was involed with cognitive psychology, and being a geeky programmer I brought some ideas to light. But I had a thought...
What if my theories were on the right track? What if I could produce learning and self awareness? Would I not be condemning new life to an uncertain existence? For example, in the vein of I Robot, AI, and Blade Runner, there would be a definite military or commercial upside to this technology... so it went from a cool gift to humanity, to thinking about how crappy it would be for a sentient slave for my own ego gratification.
Then I had another thought. What if it already existed? What if someone already figured it out, and maybe even implemented a learning machine that achieved sentience? Would they, if they had any sense of morality, publish the findings? Is it even ethical to attempt to achieve this?
I look forward to reading the book, but I'm not sure it will answer my questions.
Interceptors are a decent way to hide extra crud (like transactional services) and rely heavily on interfaces to do what they do. If M$ really wanted to do coolness, they'd redesign a language from ground up to do AOP/IoC.
I'm in the process of trying to self-publish some short stories now. The old way of doing this was to find a magazine or anthology related to short works - most of which are extinct today. Like Wikipedia killed Britannica and Encarta, the flood of free quality content today is killing the traditional ways of becoming renown. Trouble is there is so much (and more crud) its getting harder to find - drowning in entropy. The bigger shops like Amazon have done a good job on Kindle Direct Publishing, but the problem is it only seems to work for established authors. And its a fractured market. Even with the Kindle App, a lot of people won't use it... so as a self-publisher you've got to explore other publishing media too (like Kobo, B&N [that doesn't support Canadian authors], iBooks [that requires a Mac and multiple publish steps], and Google Play books [that is so awkward to use many people don't bother]. A publish, stream service kind of makes sense. Writers are burned by royalties anyway. (http://www.forbes.com/sites/georgeanders/2014/07/21/why-amazon-terrifies-publishers-lets-look-at-royalty-statements/)
Amazon - 30% for under $1. Kobo is 45%. And who would pay $1 for a short story when they can buy a novel for a $1? Or even get something free. The price is becoming less meaningful. Amazon will still likely push work through the service that is promoted - leaving out self publishers.
Shameless plug: I'm blogging about my experiences trying these things here (http://selfloathingit.blogspot.ca).
So, eventually two dudes can produce offspring, but I'm not allowed to clone myself? WTH
Kind of like those kids at school that show up with the "I'm Unique" T-Shirt. Many artists use a template.
However, F=ma would be cool on the forearm. (And a=F/m or a=dv/dt on a ladies belly.)
Students of genetics know that organisms with short life spans and simpler structures evolve much quicker that complex organisms.
A while back I had an idea to modify saccharomyces cerevisiae to include code for generating ligninase, xylanase, and cellulase. This would allow me to brew alcohol from wood etc. Presently the enzymes are harvested from aspergillus niger. Production and recovery are expensive.
So in comes a brewing bacteria that can "liquify wood." Wait. What if this bacteria were released into the environment in an uncontrolled fasion? What if it mutates? Wouldn't the result be catastrophic?
Bob, clippy, and any other gadget that imposes its will upon you by default is a bad idea. People hate being told what to do, especially when something grabs UI focus from you and makes a non-modal process a modal one. Rule No. 1 of UI design is let the user focus on the task. Distracting the user... what were they thinking? I have years of pent up Clippy hatred because my Office technology is stuck at 97 and 2000 (by choice.) First thing I always get to do is try and recall how to turn them off. BOB IS ABOMINATION! Please let it die. Take WGA next.
This was a god send to me, after VMWare Converter could not/would not convert a machine of mine, even after registry and driver cleaning, it just failed near the end without a meaningful error message in the log.
I used disk2vhd, booted up the image in VirtualBox, and bingo - working image.
I'm very happy to hear it. Once upon a time I worked for a company that kept metrics on all its projects, and we (developers) used these metrics to validate our time estimates. We didn't measure current projects in % done; we measured by function point achieved. Sounds similar to what you mention. It was one of the most stress free times in my life, as they also had effective change management. These things are counter to the manifesto.
Some would recognize this as farmer speak for selling a blind horse, and after RTFM, where refactoring and work and revising guesses, the article called "Unskilled and Unaware" comes to mind. This article's basic premise is that people who are clueless tend to overestimate their ability.
In the old days, and with most engineering disciplines, costing is a quantified, factored skill. It is not an art. People with a great deal of experience, or whom have access to metrics, can cost building billion dollar chemical plants with reasonable error rates. It all comes down to experience, or metrics in another form.
First, you record how long it takes you to do something, and how complex it was, and how much risk there was. This knowledge can be used and applied to even unrelated projects. The biggest excuse I hear in software development is that we can't cost this because we haven't done it before. Bullshit. Remember design patterns? Someone has done it before. And it doesn't take much to figure out that something you are doing is either highly complex (and arguably requiring decomposition), or highly risky, and then cost it appropriately.
Then for those high risk items, apply a strategy like rapid prototyping, or spiral software (risk based) development practices.
Bullshit to the quality vs functionality argument too. The triangle of cost vs quality vs time or function does not take into account any of the elements for succesful project delivery, like experienced management, experienced leads, a positive working environment (read no asshole driven development), and people that actually think management is mo betta than leadership.
Rant off.
Really, who cares. mp3 is pervasive. Companies have been bslapped for not supporting plain ol' mp3s. (Sony AAC only devices... die quick deaths.)
We knew they'd bang out this book sooner or later, and look, they even got to do the cover!
Your executive (or usually the administrative secretaries) should communicate to you what they want. If they are not giving you an indication of the metrics they want, and they're leaving it to you, then you have the danger of boring them with useless and irrelevant information. Not repeating the 30k feet, brief, don't use IT speak comments; you likely want to engage someone close to them to figure out what metrics you gather, or can gather, and which are actually meaningful from the BI view. Oddly, information by itself is useless. Let me explain... I work for big oil/gas company (doing corporate reporting). One thing I provide is spill reports. They use this to scorecard divisions (for bonuses). But the information itself isn't very useful, because it doesn't say what products are spilled (specifically sometimes huge numbers come out re fresh water spills, and these are reportable to govt., but not as dangerous as sour gas...). The divisional guys get really annoyed because they're compared to previous years (so its spilled volume over time), and they really want me to speciate by operation or commodity, but I can't because the executive committee in charge doesn't care. They want ONE line item for an overall metric in one area of the business. So to reiterate, its really important to talk with them or someone close to them to figure out what is useful and what the "destination" is. Process improvement? Health check? Benefits/bonuses? Lots of categories to chose from.
I would like to have...
1) a cell phone that looks like a TOS communicator (one vaporphone was the Sona Mobile themed phone)
2) a micro-lab that looks like a TOS tricorder (hell, I'd be happy with GPS, temperature, and humidity sensors in a stylish box)
3) a laser pointer that looks like a TOS phaser (that would absolutely get attention in meetings)
Cool and useful science toys.
You don't have to do custom programming; you can use a modification of edge detection to generate a texture map; effectively same color at different luminosity would drive the topology mapping.
Nah, Death March by Yourdon. I re-read it frequently and it never loses its luster.
Wow. How can you prove something like this... I know mathematical induction and various finite automata tests were used in my old school days to prove software worked... but something as complicated as this.
In any event, an inductive hypothesis in software is tripe. Unless you can formally describe all states, you usually have an unbounded problem, and people test (and prove) positive case. There are just way too many states.
Just like Bjarne said Proof by analogy is fraud... and induction is akin to analogy.
As with any software process, there are right and wrong things to do. First, the formal code review where invitees don't review the code in advance are pointless. Usually there is so much to go over, even if these are scheduled frequently, that anything more than surface is missed.
And then when you have a developer do a package and walk through, there are people not to invite. I've been in reviews where all but one of the reviewees took it seriously, and the one that did not, effectively wanted to review everything in the meeting because they didn't study the prep. Only invite reviewers that take it seriously.
A lot of unorganized code reviews degenerate into style comments and surface stuff. This doesn't help; the most important thing is to have reviewers that bring in their own findings like an audit. You can delegate things from developer to reviewer, like one reviewer could run through a profiler (ie java findbugs), another through metrics (ie java metricsreloaded), or another with specific data structures and algorithms expertise or concurrency attention. So... each reviewer can have a role. Each reviewer is a subject matter expert.
The best ones in my opinion are where the developer runs the code through a metrics tool to identify hotspots, like complex code, or things that have complex entry/exit conditions. Things where the developer actively wants to solicit opinions. Like... "How the heck can I test this?"
Again it falls to the people though. Artifacts are really important, as are action items and follow up. Another example; one review I was in we spotted a developer using floats for guids. We explained why this was a really bad idea, but because we didn't follow up on it, and neither did the developer, I spent a week hunting down a duplicate spurrious guid conflict. The team was pretty upset with the developer for not actioning a fix, but our management believed that buy in to process was optional...
Good luck. Reviews show professional acumen, but there needs to be some discipline in the prep, review, and follow up.
I've known too many software developers; even with redundant systems written to the same requirements, I'd never trust the requirements were complete, and I'd never trust that the testing covered "the negative case." Many requirements are missed, and most test cases are to a postive case (so you only have a subset of known inputs and outputs for simple, selected execution paths.)
Also, a plane that is breaking up in the air will send in interesting results via automated systems... totally off topic.
I appreciate your concern for me, and you both have given me hope because as opposed to pointless name calling, the discussion ended amicably! Good job!
Unfortunately I won't use a proxy; not that I'm not technically inclined; but because I have a little voice in the back of my head saying its not ethical. If hulu, adult swim, or any other content provider doesn't want me to have content... fine. I won't support them.
I learned about Hulu because on a Canadian news network they touted how great it was. When I checked it out, I discovered that Canadians couldn't use it... Only reason my wife and I checked it out was to try see the contraversial Palin/Clinton SNL clip we heard about. I think I can live without seeing it.
Many of us outside the US can't use Hulu anyway; so it doesn't matter ;-)
People need to ask the question, what is the business driver for an enterprise to spend money on OpenSource? The argument will be, enterprise will likely be a consumer only of the product, because there is no value to the business in spending money on enhancing any OpenSource project because its likely not a competency of said company. Restated; why should a big energy company invest in mysql's development? They're a consumer, not a producer of said technology. Now... if said big company needs to fix some glitch in an OpenSource project; well; they're obliged by license to contribute. But very few big companies have the internal expertise to do that [because again, they're probably not in that business.]
So its really a battle for mindshare and credibility. If you have an enterprise using OpenSource, it justifies its existence, and the spin off consulting to actual OpenSource champions/contributors is where the money is.
I started playing everquest in 2001. At first I refused to play, but friends pretty much bought the game and installed it on my PC. I refused to play because I figured I'd get addicted... and sure enough... 7 years later... I went cold turkey. There are a few things that I realized about my own addiction that helped me break it.
First, MMOs are Skinner boxes. http://en.wikipedia.org/wiki/Operant_conditioning_chamber They let the player feel like they're accomplishing something. This is a huge motivator when in your real life, the rewards are missing from any effort. For me, I had just got divorced and had a company I help start shoot down the toilet. Suffices to say, I was at a motivational low.
So, to figure out the trap (Skinner box), you need to figure out how to get the rewards in real life that are missing. A psychologist might suggest sitting with your friend and actually setting achievable, short term, real world goals. Even if it is as simple as going for a 30 minute walk. Then emphasize the "Hey, I did something today." You might even want to try something that gives other rewards, like adrenaline, through running, or some sport.
Next, there was the social aspect. People in MMOs believe the social context missing from their lives is real - that you actually have friends in the game. This is pretty far from the truth. Sure, I got to know a few people well in my EQ experience, but not one of them has participated in a relationship outside the game. So, some brutal realities there...
Anyway, I've been EQ free over six months. I refuse to play another MMO, ever. When you look at the total time played, and you see that you've been online 300+ days... ask the question, if you had a year of time back, what would you do with it? Sit in front of a computer screen like a zombie? Or actually try accomplish something. People often say they don't have time for stuff. Pretty sobering to look at some metrics. And real addicts underestimate how much time they play.
Well...
All the amazing solutions that I've had while asleep or in delerium have always seemed really good for the 30 minutes of furious waking coding... before the "What the f**k is this garbage? It will never work..." gets shouted out.
My subconscious thinks this is hilarious.
Many moons ago I thought about doing a doctorate in computer science. Knowledge sciences were very cool, AI was mostly a dead topic, and ... I disagreed with most everything I read on the topic of KS/AI. I had many of my own ideas, was involed with cognitive psychology, and being a geeky programmer I brought some ideas to light. But I had a thought...
What if my theories were on the right track? What if I could produce learning and self awareness? Would I not be condemning new life to an uncertain existence? For example, in the vein of I Robot, AI, and Blade Runner, there would be a definite military or commercial upside to this technology... so it went from a cool gift to humanity, to thinking about how crappy it would be for a sentient slave for my own ego gratification.
Then I had another thought. What if it already existed? What if someone already figured it out, and maybe even implemented a learning machine that achieved sentience? Would they, if they had any sense of morality, publish the findings? Is it even ethical to attempt to achieve this?
I look forward to reading the book, but I'm not sure it will answer my questions.
Actually...
Interceptors are a decent way to hide extra crud (like transactional services) and rely heavily on interfaces to do what they do. If M$ really wanted to do coolness, they'd redesign a language from ground up to do AOP/IoC.
I'm surprised after reading the spec and blog that a bunch of this seems to be re-inventing Objective-C and bits of concurrent object oriented C. http://portal.acm.org/citation.cfm?id=157352.157356
Not only that, but extensions to a language don't really foster supporting a new paradigm. http://www.codinghorror.com/blog/archives/000169.html