Descubrimientos de una inteligencia artificial que supera el test de Turing
On the Internet, everybody knows you're a chatbot.
Buscar en Mind w/o Soul
miércoles, diciembre 30, 2009
lunes, septiembre 01, 2008
Libro sobre creatividad
The Universal Traveler: A Soft ... - Google Book Search
This unique book will open your eyes to effective and stimulating formulas for solving problems. Discover how techniques developed in specialized disciplines can be applied to almost any business, social, or personal situation.
Comentario en la lista HCI:
I'd like to add to the discussion about solo ideation by framing of it as a dialog with ourselves. We want to get dialog of ideas flowing and keep them flowing. Here are some points of practice that I have found very useful:
1. Set up a defined time for the session. We want to challenge ourselves to think by different rules for a while because we're going to set aside our dominant analytical and critical thinking abilities and open up the wild side of imagination. So we give our critical side the assurance that we're going to play by these rules for only 20 or 30 minutes, then the critical function can come back in.
2. Keep the critical thinking function out of the room during the session. This is another way of thinking about Osborn's "defer judgement" principle, and it's fundamental to this kind of ideation. Without this principle, we end up driving with our foot on the brake. What it means in practice is that we want to entertain not only the wild, weird and improbable, but also the dumb, mundane, copycat, and obvious ideas. Let everything and anything come out. We want flow, and sometimes the best way to start the flow is with the most obvious solutions. Get them out and see what's behind them.
3. Get the ideas into the room. It's hard to have a constructive dialog with ourselves if it all takes place inside our head. Thoughts are ephemeral, and to really respond and build on an idea we need to make it persistent. Write things on postits or whiteboard, or slips of paper on the table, or anything that captures the ephemeral thoughts. Get them out of our head and into the room. This makes way for new thoughts and creates artifacts that we can sort, cluster, combine, etc., to see patterns and relationships, as well as reconsider and reflect on.
4. Be visual. It really helps to make some kind of visual sketch or notation for an idea as we create it. The process is more natural when we're brainstorming about physical objects, but don't be blocked by the notion that "there's no way to represent this idea...." Find a way to put some kind of glyph, scribble or symbol with even the most abstract concepts. The idea here is not to make a graphical explanation of the idea on the spot, because that may really break the flow. We just want to tie something visual to it. When we scan the wall or board or table full of ideas, these little graphical snips give the imagination something else to work with. A sketch or scribble that's tied to a verbal idea also makes individual ideas easier to identify and remember, when faced with a wall of 50-100 postits.
5. Be visual again later. I have found it useful to take a second visualizing pass on the ideas even after the brainstorm session is over. Take some set of the most promising ideas and make a sketch that represents each one. The process of thinking over the idea and trying to come up with a way to diagram or represent it often gives new insight into that idea and spawns other new ideas. Try this as a simple exercise or practice for time or two and see how it affects your overall attitude and results.
domingo, agosto 31, 2008
Estandar ISO para usabilidad
ISO standard for usability of everyday products
Measuring the usability of everyday products
ISO have released a new standard for measuring the usability of every day products, like ticket machines, mobile phones and digital cameras. This standard, ISO 20282, includes test methods for quantifying the usability of consumer products to ensure they meet a pre-defined quality level. This development is exciting because the standard's focus on usability measurement reflects a sea change in the evolving practice of usability. — David Travis, June 2, 2008
martes, julio 22, 2008
Proyectos de software a precio fijo: mala idea
One of the riskiest decisions you can make in software development is to require a "precise" cost and schedule estimate at the beginning of the project. Although there is nothing wrong with fixing just the price, as I wrote in Agile on a Fixed Budget, the situation quickly becomes dysfunctional when you also decide to fix the schedule and the project scope. Although customers often demand to work in this manner, particularly when the system is being built by another organization such as a system integrator (SI), as professionals we must question the ethics of fixed-price IT projects. We know fixed price is a bad idea, our customers inherently know fixed price is a bad idea, and it's high time that as an industry we choose to abandon this highly questionable approach.
jueves, junio 12, 2008
Consejos para sobrevivir en el siglo 10
Marginal Revolution: Time travel back to 1000 A.D.: Survival tips
I wanted to ask for survival tips in case I am unexpectedly transported to a random location in Europe (say for instance current France/Benelux/Germany) in the year 1000 AD (plus or minus 200 years). I assume that such transportation would leave me with what I am wearing, what I know, and nothing else. Any advice would help.1) Wouldn't *I* be the one infecting everyone else, rather than the other way around, because I'll have
the antibodies for all the futuristic strains infesting me and they won't?2) Tell them that the aeolipile (sp?) is not just a toy; steam power has untapped potential.
3) Teach them about mass production and automation. (actually, don't know what specifics I could give here)
4) Teach them about sanitation and hygiene.
5) Back up all claims with bets, putting up whatever wealth you can get as collateral.
6) Teach them Bayes's Theorem -- an even better epistemology than the scientific method.
7) Teach them the Put-Call Parity Theorem so they can discard their prejudices against usury.
8) Teach them Ricardian comparitive advantage so they can discard their prejudices against foreign goods.
9) Most of all, advise them, in no uncertain terms, not to be timist. (That's like racist, but against people
from a different time.
viernes, mayo 30, 2008
Interpretación de programas de ordenador
Structure and Interpretation of Computer Programs
The picture language exercises some of the critical ideas we've introduced about abstraction with procedures and data. The fundamental data abstractions, painters, are implemented using procedural representations, which enables the language to handle different basic drawing capabilities in a uniform way. The means of combination satisfy the closure property, which permits us to easily build up complex designs. Finally, all the tools for abstracting procedures are available to us for abstracting means of combination for painters.
We have also obtained a glimpse of another crucial idea about languages and program design. This is the approach of stratified design, the notion that a complex system should be structured as a sequence of levels that are described using a sequence of languages. Each level is constructed by combining parts that are regarded as primitive at that level, and the parts constructed at each level are used as primitives at the next level. The language used at each level of a stratified design has primitives, means of combination, and means of abstraction appropriate to that level of detail.
miércoles, mayo 28, 2008
YOXOS: Configurador de Eclipse automático

Yoxos On Demand: Free Eclipse Download Service
Eclipse On Demand
Download. Update. Share. Now entirely free!
* Get Eclipse 3.3 Europa plus hundreds of plugins.
* Choose plugins and add them to your download.
* Get all dependencies resolved automatically.
* Single file download.
* Free update service.
* For Windows, Linux and Mac OS X.
miércoles, mayo 14, 2008
Documentación HOW TO
Usability in Technical Documentation
Technical writers are involved at a very late stage in the product-development life cycle due to which the quality of the documentation suffers.
1. Time bound deliverables
Due to late involvement; technical writers are bounded to create documents with a quick turn around time.
2. Closely associated with the development team hence they are
a. Dictated by the product development team
b. Biased and tend to use technical jargons
c. More focused on the functions and features rather than the user’s tasks
3. No access to the actual users
Technical writers usually don’t have an in-dept knowledge about the target audience for whom they are catering to hence the documentation-
a. Does not speak the user’s language
b. Reflects a lot of cultural issues
Technical writers can overcome these challenges by
* Getting the organization to have “Technical Writing” as a planned activity
* Involving them in the early stage of the product life cycle
* By creating “User Focused Usable” documents, which is the most critical activity Testing documents of a product with “actual” users is key to create “Usable” documents.
lunes, mayo 05, 2008
HOW TO: Concentrarse en el trabajo
16 Ways to Keep A Razor- Sharp Focus at Work | Zen Habits
Focus is something that must be fought for. It’s not something that automatically switches on when you want to. You have to make sure your surroundings are perfect for working if you want to be focused. Here’s a few ways I’ve found this to work:
- Use offline tools. Paper products, pens, and other
physical tools are a Godsend for those of us who have a hard time
focusing throughout the work day. They’re so simple that we can
use them quickly, without having to worry about becoming distracted.- Take more breaks. More breaks = More productivity.
It may sound wrong, but it’s true. Breaks allow us to re-group
our thoughts and focus for the task at hand. They also keep us fresh so
that we don’t end up burning out after only a few hours work.- Smaller tasks to check off. When you’re
planning your day, make sure that your “action steps” (aka
items in the checklist) are small actions. Instead of “Paint
living room”, try breaking it down into many tasks, like
“buy paint, buy rollers, pick colors” etc.- Keep a steady pace. Don’t try to do to much.
Keeping the pace manageable allows you to keep your focus.
Unfortunately, people can confuse this with “Work till you drop
without breaks”. See number 2.- Keep a daily “purpose” card.
It’s pretty easy to get lost staring at the computer all day
long. We’ll find rabbit holes to wonder down (ie. Youtube,
Myspace, etc.) if we’re not careful. Having your daily purpose
card gives you clarity and a reminder as to what you’re doing
today.- Develop the mindset that the computer is only a tool.
It’s easy to try and use the computer for too much. At its core,
the computer is merely a tool (albeit a freakin’ awesome one)
that allows to do work more efficiently. If we’re using it as
something more than that, (like as a solution for your life),
you’ll ultimately fail. It’s like trying to eat a steak
dinner with only a spoon.- Plan your day to the T. If you’re finding
sporadic periods of laziness throughout the day, it could be because
you don’t take enough breaks (see #2), and you don’t have
the day mapped out as efficiently as you could. Make sure your list of
todos has lots of small, actionable steps that can be done quickly.
This will gives a really satisfying feeling when you’re crossing
things off your list like crazy.- Notice your lazy routines. Everyone has recurring
lazy spots throughout the day. Plan to have your breaks for those
times. You’re going to be lazy then anyway, right?- Plan the night before. Planning the night before
is a great way to really get focused on the next day.
“Sleeping” on your tasks and goals for the following day
can really help your mind expect what’s going to happen the next
day. Essentially, you’re preparing your mind for the following
day. Advanced focus.- Turn off extra inputs. These are IM and email for
me, but we all have our Achilles heel. Completely turn off any
distracting piece of technology that you own. Every one of these inputs
tries to steal bits of your focus. And they won’t rest until they
do.- Set time limits for tasks. There’s no motivation like a deadline. Giving yourself real deadlines
is a great way to stay motivated and focused on the task. Given the
fact that we human are natural procrastinators, it’s no surprise
that we’ll take as long as we’re allowed to finish
something. Setting real but attainable limits is a great way to keep
the project humming, so to speak.- Keep a journal of what you did throughout the day.
I like to use a moleskine notebook for my lists just so I can go back
and review it every now and again, to see what I’ve done. Knowing
how far you’ve come can keep you sharp and motivated to finish.- Use programs to track where you spend your time.
This is a real eye-opener. Knowing just how much time you spend every
day/week/month on a certain site or with a certain program can quickly
show you where your priorities lie. I recommend Rescue Time, but there are many others.- Visualize the day in the morning, before it starts.
A little pre-work meditation on the day’s events is a great way
to start the day off focused and productive. Don’t worry about a
full 30 minute session, a quick review before you start the day is fine.- Start the day right. Starting the day with a good
breakfast, some quiet time and/or exercise is a great way to set your
day up for success. Sounds like a cliche, but it really works.- Clean yourself up. It’s why my track coach
in high school made us dress up for big races: you perform the way you
feel. And if you feel polished, groomed and ready, you’ll be more
likely to be productive. For me this is just taking a shower, brushing
my teeth and putting on casual clothing. I used to work all day without
taking a shower in my PJ’s, but I never got much stuff done.
Let’s be honest here… if you’re dressed really
casually, odds are you’ll be working really casually. Just taking
the time to clean up a bit before you buckle down for the day is never
a bad idea.
lunes, abril 21, 2008
martes, abril 15, 2008
Continous integration: metodología de versionado de código
BzrVsGit - Bazaar Version Control
Continuous Integration (CI) is a best practice
adopted by many open source projects and commercial teams using
Agile/Lean development methodologies like XP and SCRUM. The objective
is always having a shippable code base by early detection and
correction of when things break. Here are the core CI practices as
given by chapter 2 of Paul Duvall's book:A better workflow for achieving this is called Decentralized with automated gatekeeper as explained in http://bazaar-vcs.org/Workflows.
- commit code frequently - commit centrally at least once per day
- don't commit broken code
- fix broken builds immediately
- write automated developer tests
- all tests and inspections must pass
- run private builds
- avoid getting broken code.
jueves, abril 03, 2008
Cómo iniciar una conversación
How to Have Less Awkward Conversations: Assuming Rapport
Assuming
rapport. This is definitely one of the best social skill tips I have
ever learned about.Unfortunately I’ve forgotten a bit about it
lately. Maybe you have too. Or missed it altogether. So I thought
I’d bring it up again.
Now, what is assuming rapport?
Basically,
instead of going into a conversation or meeting nervously and thinking
“how will this go?” you take different approach. You assume
that you and the person(s) will establish a good connection (rapport).
Cómo empezar mejor el día
How to start your day in a better way
These morning questions are great because
a) the way they are set up makes you recognize things you take for granted
b) and then they really get you to feel those positive feelings.
16 ideas sobre organización
16 Things I Wish They Had Taught Me in School at Personal Development with The Positivity Blog
But sometimes I wish that I had known some of things I have learned over the last few years a bit earlier. That perhaps there had been a self-improvement class in school. And in some ways there probably was.
1. The 80/20 rule.2. Parkinson’s Law.
You can do things quicker than you think.3. Batching.
Boring
or routine tasks can create a lot of procrastination and low-level
anxiety. One good way to get these things done quickly is to batch
them. This means that you do them all in row.
4. First, give value (to others). Then, get value. Not the other way around.5. Be proactive. Not reactive.
This one ties into the last point. If everyone is reactive then very little will get done.6. Mistakes and failures are good.
When
you are young you just try things and fail until you learn. As you grow
a bit older, you learn from - for example - school to not make
mistakes. And you try less and less things. This may cause you
to stop being proactive and to fall into a habit of being reactive, of
waiting for someone else to do something.7. Don’t beat yourself up.
Why
do people give up after just few mistakes or failures? Well, I think
one big reason is because they beat themselves up way too much. But
it’s a kinda pointless habit. It only creates additional and
unnecessary pain inside you and wastes your precious time.8. Assume rapport.
Meeting
new people is fun. But it can also induce nervousness. We all want to
make a good first impression and not get stuck in an awkward
conversation.
The
best way to do this that I have found so far is to assume rapport. This
means that you simply pretend that you are meeting one of your best
friends. Then you start the interaction in that frame of mind instead
of the nervous one.9. Use your reticular activation system to your advantage.
What
this focus system, this R.A.S, in your mind does is to allow you to see
in your surroundings what you focus your thoughts on. It pretty much
always helps you to find what you are looking for.
So you really need to focus on what you want, not on what you don’t want. And keep that focus steady.
Setting goals and
reviewing them frequently is one way to keep your focus on what’s
important and to help you take action that will move your closer to
toward where you want to go.10. Your attitude changes your reality.
When you change you attitude you change what you focus on. And all things in your world can now be seen in a different light.
11. Gratitude is a simple way to make yourself feel happy.
Sure,
I was probably told that I should be grateful. Perhaps because it was
the right thing to do or just something I should do. But if someone had
said that feeling grateful about things for minute or two is a great
way to turn a negative mood into a happy one I would probably have
practised gratitude more.
12. Don’t compare yourself to others.
A more useful way is
to compare yourself to yourself. To look at how far you have come, what
you have accomplished and how you have grown. It may not sound like
that much fun but in the long run it brings a lot more inner stillness,
personal power and positive feelings.13. 80-90% of what you fear will happen never really come into reality.
This
is a big one. Most things you fear will happen never happen. They are
just monsters in your own mind. And if they happen then they will most
often not be as painful or bad as you expected. Worrying is most often
just a waste of time.14. Don’t take things too seriously.
15. Write everything down.
If
your memory is anything like mine then it’s like a leaking
bucket. Many of your good or great ideas may be lost forever if you
don’t make a habit of writing things down. This is also a good
way to keep your focus on what you want.
16. There are opportunities in just about every experience.
miércoles, marzo 26, 2008
Hechos y falacias de la ingeniería del software
Coding Horror: Revisiting The Facts and Fallacies of Software Engineering
Simply reciting the various facts and fallacies feels like a zen koan to software engineering. Even without any of the background discussion and explanation in the book, it's therapeutic to ponder the brief one sentence summaries presented in the table of contents. As you read these, what comes to mind, based on your experience?
viernes, marzo 14, 2008
Consejos para una empresa que comienza
Startup Tips for the Early, Early Days
My favorite stage of a startup is the early, early days. This is when things are the most chaotic, resources are limited and the team is small enough to fit a single car.
I've been thinking about the early days of the startups I've been involved in and put together some quick (and practical) tips on these early days.
miércoles, marzo 12, 2008
Inyección de dependencias en Java: cómo y cuando usarla
Inversion of Control Containers and the Dependency Injection pattern
In the Java community there's been a rush of lightweight containers that help to assemble components from different projects into a cohesive application. Underlying these containers is a common pattern to how they perform the wiring, a concept they refer under the very generic name of "Inversion of Control". In this article I dig into how this pattern works, under the more specific name of "Dependency Injection", and contrast it with the Service Locator alternative. The choice between them is less important than the principle of separating configuration from use.
martes, marzo 11, 2008
Por qué externalizar la programación a la India no es lo mismo
David's Software Development Survival Guide: Modeling development capacity in offshore teams
I'm often challenged by their assumption that x staff-weeks of effort here (in the San Francisco bay area) is equivalent to x-staff weeks of effort for our offshore team (located in India).
- Our overall development team is medium-sized (20-30 developers)
- Our offshore team represents less than half of that size
- Members of the offshore team are generally very solid and competent engineers; but
. They're on average 5 years more junior that the SF folks
. They have 6 to 18 months tenure with us, when the majority of the SF folks have been working with the product for over 5 years
When
talking about differences in productivity, I'm therefore NOT referring
to a potential difference due to one of the team being intrinsically
less competent or talented than the other; but differences related to
experience, background, and distance.
jueves, febrero 28, 2008
How Do You Find Programming Superstars?
How Do You Find Programming Superstars?
A
superstar programmer who's been around a while will ask about the build
environment, version control system, and bug tracking system that you
use,
A couple more you could ask about: (1) the release process, and (2) if
the company uses its own software, the configuration management
process.
http://www.joelonsoftware.com/articles/fog0000000043.html [joelonsoftware.com]
The Joel Test
1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?
Proyectos desde cero
Adding the Easy Piece; or, The Metaphor of the Rock | Oliver Steele
This perspective – the size of the rock – is the static view of code size. It’s concerned with how to move rocks of a fixed size. The static> view is the right view for maintenance programming. It’s the right view for (most of) version three of a product, where most of the program is unchanged from version two. Often it’s the right view for version two as well.
For a greenfield project – a project where you’re (mostly) not modifying an existing system, but (mostly) starting from scratch – the static view is too limited. In a greenfield project, you’re not just moving the rock. You’re building it too








