Sunday, August 05, 2007

Amazon EC2 instances have hidden command

This was my first experience with Amazon EC2. 100 instances doing WWW / 50M http hits per day.


And then we discovered this hidden command:

shitdown -h now!


And it worked.

Now we are at Layer42. It feels right.

Saturday, May 12, 2007

The day when geeks will take over The Stick

Why Hit Forge based models could rule the near future


This is Hit Forge and more is here



Business is easy


It took me 15 years, as a developer, to realize that.


Writing software is about turning machines into your private slaves - that's exciting, empowers you - but is only on-screen.

Much more fun is coding business, which is nothing more but using laws of physics and your coding skills - to make people hand you over their money, in a politically correct fashion.


This, in turn:
- buys you life (money=time).
- makes others respect you.
- buys you a big house.
- porsche.
- gets you hot girlfriend, for many it could have been life-goal (let's not brag about woman who didn't like money).
- or gives your children opportunity to choose the best education (those who experienced paternal instincts know what I'm talking about).


* welcome to ego heaven



Worth mentioning, there is much less competition in the field than in pure coding one. Businessmen have generally worse skills in synchronizing events, thinking out possibilities and noticing details. I think of developers who debug, master action/reaction, synchronize processes in milliseconds,
have great sense what it means confronting the physics of the Nature ...and more...



What matters is reaction of the market and quick & flexible turns to take the best advantage of it

Nobody can for sure predict market reaction, but what is left are skills to notice details and up-create a big picture out of it. Generalize where possible. Fill out the missing numbers. Early notice trend to failure.

Guess who can do it better?


But yet most of the geeks never step into this zone.


(with exceptions of Commodore, Apple, Microsoft while uprising, Google, Digg - wherever coders were/have been truly in charge)

There is a mantra, created by businessmen which reads: building companies
is hard, leave it to us.



Business people are important

Nothing if black and white. The laws of Nature will tell you this the next morning.

Layer of business people is important, very important. They are connectors. They can talk to people.

As an experienced coder, I know the feeling of "wasting my time" dealing with politicians, dishonest people and anything else that doesn't-react-as-instructed.

Coders know how nature feels. And The Market, as part of it. But not the micro-universe of human behavior.


Capital is unavoidable, as well. I heard people objecting the importance of it because now we have Amazon Web Services, Imageshack, cheap hosting, open source...

They're right, but there is more to it.



An example

Say you are a bare handed builder. Experienced. On a party you overhear an idea which could be hit. You should always steal good ideas. Tech parties are full of them.

As a coder who can build complete product - it's easy, give it few thousands lines, get yourself a server on Rackshack and start flying. Then you spend some more time to get first users, do A/B testing, see how market reacts by analyzing logs, using your debugging skills. Don't know how to get first users? Buy them, it's cheap.

Use this knowledge and your coding skills to figure out which micro actions should be taken to lead users into desired reaction.

Two possible outcomes:

- it simply doesn't work. You can try again, or kill it.

- market bit it: now it's time for rent-a-business people


They will unload the "boring" tasks off you by getting more people into the team, inject money for technical stuff (for example salaries, so you don't need to give up more shares). In other words, help thing expand in the fastest possible way and help you magnify your best: understanding why it worked.

Otherwise, you're subject to fast-following, burnouts, getting hell bored doing things you might not like, like dealing with support.

But if you call professional help in, you could also move along and build more companies.

Without money you can't reach those who need salary. This, alone, can lead you into making bad partnerships which can later destroy the company.


In other words, let business do what it does best: do the talking.



If you still think the Silicon Valley is famous because of coders - you are wrong.

It's because of its risk-tolerant capital holders and business culture.

Put these capital-adventurers in the middle of Atlantic Ocean, you'll get the Silicon Valley there.



Builders are everywhere, we just need access to the business layer and freedom to fail.


Wednesday, April 04, 2007

The God, revisited

I, for sure, don't believe in God and think that religion is often dangerous for teaching us that non-understanding is a plus, the Church works in a mafia-model by combusting our fears... - but

After reading The Wisdom of Crowds, I started revisiting the whole idea, from the standpoint of how-brains-interconnect: the God being an imaginary point where you instruct you brain to connect to and believe unconditionally everything the point propagates to you, that being actually a compiled opinion from the child nodes.

Voila.

That makes, or could make, our entire brain acting as one cell, allowing us to create super brain by connecting all child nodes (believers, in God's case) to super-hub, "the God" itself.

Q: Does the God exist?
A: Yes, as long as there are at least two people believing in it!

The Bible is written in a very clever way: If you understand it's a bullshit, you are ready to move onto next level. No need for anybody to evaluate your brain's readiness.

God is just one model suitable to be instructed to our brain. There are various other models: Sport teams, nationalities, labeled groups. Also Digg, Myspace. Basically, anything you can make yourself feeling "connected to".


my thinking process is still evolving but this CNN article may be of interest.

Sunday, March 25, 2007

Learning from spammers

I just visited site from a spam email and... I think there is lots of things we can learn from spammers about design: clean, direct, colorful, pretty


Saturday, March 24, 2007

Stupidity causes global warming, too

Not directly, of course.

But when you do something stupid, you make one or more people proud because they were not you.

That does cause global warming and you should stop making other people proud for not being you..

~

Why did I just post this:

Regarding my article Adobe's Apollo, Google warned me that I violated terms of use by posting a non-useless article on Blogger.

Tuesday, March 20, 2007

Adobe's Apollo



WARNING: People seeking for useless philosophy only, may skip this post

FOR OTHERS, IMPORTANT DISCLOSURE:
I'm Flash, Adobe Reader hater!


http://www.technewsworld.com/story/56394.html


From developer's perspective (and this is going to be our call), there are very important reasons why HTTP/HTML/P*/CSS/JS/mysql/Linux combination took major role in web revolution and Flash became a hooker.

I've worked actively with different models/platforms - C, C++, Borland (OWL), Microsoft (MFC) and Java, directX... (exception is .Net),

...for about 17 years.

Let's see why I've learned:

0)
- Online: I want **nothing** to do with local computer. I want nothing to do with local files, file systems, registry, video resolution,
local API, installation folders, need-this-library-situations (!). If I want to store something for user, It's going to be on my server in file system on a machine which I specially prepared for this application and for which I know how is organized, what can take, under which load it is expected to collapse.

If there is structured data, I want that to be in my mysql, which I configured with around 40 highly specific commands in my my.cnf, which nobody is allowed to touch, not even system administrator.

I want UI totally separated from the application Engine: these are two completely different things. UI is dirty, quickly made up spaghetti code which only needs to work correctly and to be beautiful from outside.

Back engine needs to be clean, structured, stable - to spare machine and crash never. Most importantly -
data needs to be in one pool for every client, not them connecting to each other over and over. That generates routing problem and requires developer's advanced knowledge which we're trying to avoid in order to have more developers on Earth .

When I build UI - I think like a user, I just visualize desired outcome and try to build up to it as fast as possible...

But, when I build back engine - I feel compassionate to the machine which is going to run it, and am very careful for every memory allocation, every open file handle..

UI takes lots of resources (check your browser's memory footprint) and often forces machine (browser) into crashing.

Back engine is simple code, takes little resources but needs to be absolutely reliable.




Being entirely different in almost every aspect, these two should be separated far far away from each other.

Otherwise, imagine this way: every time browser crashes, you lose your data.


Privacy? One of the best manipulated subjects today.
Will probably time out, after majority realizes that attention=money, ranging from $0.04 to $30 per pair of eyes per occasion. Take my word, forget it for a moment.


1)
- Linux: community+simple+stable+familiar. This includes experience in working with file systems, knowing what machine can/cannot do. Even version of OS makes difference to me. I can quite feel what can be done with particular machine, so we don't waste time/money under scaling /overkilling.

2)
- HTTP: switching to url and stateless request was a major milestone in my life!

One request is one life cycle of the micro application. You don't have to keep image of entire system in your mind. An action starts with initialization, does thing, goes away in 500ms. DB carries the burden of managing the state and shared data. In other words, you can focus to serve specific action at a time and you can release everything else from your mind. Beautiful.

Otherwise, you need to think about health of the process, memory allocation and releasing, cleanup threads, occasional saving to disk, dealing with recovery


Is Adobe thinking of taking us back to dark ages of application installation, versions, data loss, incompatibility and when developing was a science? If not so, what is their proposal?

I must be missing something important here...

Application developers are users of platform designers, hence we should be treated as idiots. Appreciated.


This is exactly why HTTP took over everything else. Downside is speed, but developers are more important.

Also with XHTTP/JS you can decide how much you really want to reload, so when developers are ready, they'll use it!

As an ex-desktop developer, it took me some time to get used to it - but now wouldn't change it for anything. It should be treated as a step forward, not backwards.


3)
- Mysql took over because of the community, availability and price. Even postgress seems to be better (heard so), it's not enough. Any mysql's question is answered somewhere, and there is lots of questions when it comes to storing your data.

4)
- P*: in my case PHP, is similar to C, especially function names. That's why I chose PHP, nothing really more to it.. Loads fast (can be used in stateless mode), has well done mysql support, associative arrays - that's why not Java.
- Also, has Zend Studio IDE and I would really rather stay with PHP because of Zend than something else which wouldn't have Zend.
- php has hundreds of libraries built by community, covering almost anything. Done.

4)
- JS/Firebug: I'm actually addicted to it. Firebug is seriously best debugging tool ever built, having MS Visual Studio and Zend studio as competitors. Plus? Available from any(F) browser. No debugging' servers, no client switches, no levers, no howtos... For the first time, ever! Hello?

5)
- Firefox (browser): extensions. Without Firebug, timestamp generator, hashing extension, WebDeveloper toolbar I would kindly try to avoid it.

6)
- HTML+CSS+JS: (I'm coming from OWL, MFC and JavaSwing). This is great combination for building UI. Anything you need, strait on the spot you need. My wife is a lawyer and she is just now building corporate website in HTML in Word. I'm sitting on the other computer and building 2.0 application in Ajax. Using the same paltform.

Ok, actionscript==javascript, but is the whole combination what makes it great.


To be fair, code is dirty but it doesn't matter for UI: if it works - it works. It is far more important to have freedom.



In the other corner we have:

1)
- Coding Flash is just plain nightmare. Even actionscript==javascript, Flash DOM is retarted.


let me document the claim:

// create a layer with a border and write some text inside

// create a layer
_root.createEmptyMovieClip( "myclip", 1 );

// why the hell this way?
var myclip = _root.myclip;

myclip._x = 0;
myclip._y = 0;

// allow me to ask few questions
// why layer is called movie clip?
// why _root has that underscore?
// why I need to specify some number which is level
// and I'm required to do so (think: z-index)
// why the hell this call doesn't return
// pointer to new layer, but instead I need
// to pass string name and retrieve it from soehwere else
// why underscore in x and y ??
// why why why??


// ok, make a rectangle
myclip.moveTo( 10, 10 ); // !!
myclip.lineTo( 100, 0 ); // !!!
myclip.lineTo( 100, 100 ); // !!!!
myclip.lineTo( 0, 0 ); // !!!!

// dont worry, won't even work
// you need to set myclip.setLineStyle before d'oh

// have some text on it

myclip.createTextField( "mytextfield", 1, 0, 0, 100, 50 );

// 100 and 50 are dimensions of text rectangle. Yes! you need to
// specify it and yes, your text will be clipped if you
// anyhow specify smaller than it takes
// "1" was again required z-index and 0 0 are coordinates

// AAH! not to forget. IF YOU SPECIFY TWO OBJECTS IN THE SAME Z-INDEX
// THE SECOND WON'T EVEN SHOW OFF. THEY USED THE SAMEL LEVEL
// RE-FUCKING-TARDED!!


// I won't even comment this again:
var mytextfield = myclip.mytextfield;


mytextfield.text = "Fuck you Adobe";

// and here we go, a layer with rectangle and text inside
// you want some other font, size or something else?
// ooh, you'll need to create TextWhateverStyle object and fill it with values


// leave you there..

what about HTML + CSS?

<div style="position:absolute; top:0px; left:0px; border:1px solid #000000; color:#ff0000;" >Fuck you Adobe!</div>


need to say more?


2)
- The latest Flash IDE is on level of Borland Turbo C 2.0 from 1987.


Odds that Adobe is going to move web revolution to the next stair?


- Why flash then?

Great 2D animation engine underneath. Macromedia/Adobe developed these graphical engines/technologies to support their old products. These seem to me practically ported to Flash and really well done. As is DirectX.


However, this, or most said in Apollo's FAQ page don't have anything to do with Web revolution.

I'd say Adobe doesn't really understand why web is moving in the direction it's moving. Instead, they probably see it going backwards and trying to help us by bringing up '80s.

Sunday, March 11, 2007

Humans from cat's perspective

We, humans, may appear plain stupid in the eyes of cats.

Two reasons:

Reason Number One

At first, we were their food.

Now - we feed them, provide shelter, take care of their health, clean their shit


Reason Number Two



Friday, March 02, 2007

Geek

I caught myself downloading using command line ctorrent while browsing with text browser elinks on a FreeBSD under VMWare, everything running on a Windows box.

I wonder... when did I become such a geek