По-сигурната алтернатива на Google Chrome - Iron

Google Chrome не е добър избор, ако желаете анонимност и сигурност в интернет по няколко причини:
  • създава уникален ID номер на всеки потребител и по този начин може да бъде идентифициран;
  • създава времеви маркер по време на инсталацията си;
  • ако е включено подсказване при въвеждане на текст в адресната лента, тази информация се праща на Google за да бъде осъществено подсказването;
  • отново в зависимост от конфигурирането грешки при въвеждане на URL адрес се изпращат на Google за да генерират сървърите им съобщение за грешка;
  • ако не е изключена опцията за съобщаване на грешки и забивания на браузъра се сещате какво се случва...
Пълният списък на причините, поради които от SRWare са създали алтернатива на Chrome, също базирана на Chromium ще намерите на сайта им. Името на техният браузър е Iron и при желание го изтеглете от тук.
П.П. Ако не сте параноик за анонимността си в интернет използвайте браузърът, който ви допада най-много. Случайно, ако сте такъв задължително използвайте приставки, изтриващи историята на посетените страници, бисквитките, изключете с тяхна помощ или собственоръчно поддръжката на JavaScript, Java, Flash и ActiveX и използвайте анонимизиращи мрежи като TOR или JAP.

Редактрано

Адаша е писал за новостите по темата - Google Chrome OS .

New Family - Jerry Seinfeld and Bill Gates (Long Version)

Рекламната кампания на Microsoft на стойност 3 милиона $ в отговор на Apple продължава.

Google Chrome и Google OS

Google Chrome е браузър с отворен код, създаден от Google с използване на WebKit и в момента е в бета стадий. При стартиране на първо място прави впечатление изчистеният дизайн, а малко по-късно и пъргавината му. Според разработчиците си четеца на уеб страници е създаден за да "направи работата в интернет по-бърза, по-лесна и по-безопасна, с минимален дизайн, който не се натрапва" и според мен в голяма степен са успели да постигнат целите си, като се има предвид, че все още програмата не е във финална версия.
Няма да коментирам всички възможности на браузъра, а само тези, които заслужават внимание:
  • всеки таб е отделен процес;
  • присавките също са отделни процеси;
  • табовете могат да стават отделни прозорци, както и прозорците могат да стават табове;
  • прозорец в невидим режим (инкогнито);
  • могат да се правят икони на сайтове директно от Chrome на десктопа, в старт менюто и в лентата за бързо стартиране на програми.
Защо е нужно в един браузър табовете да са отделени процеси? - отговорът е прост: до скоро уеб страниците бяха доста семпли и не натоварваха така браузърите, както в днешно време. Друг възможен отговор е повишаване на сигурността (все пак всеки процес е отделно капсулиран). И трети: когато са създавани другите браузъри те не са били с цел създаване на нова операционна система - Google OS или GOS. Точно така, правилно сте прочели операционна система! Според много професионалисти това е бъдещето на потребителския софтуер - онлайн операционни системи и уеб приложения, какъвто е офис пакета Google Docs. Chrome kакто всяка друга ОС си има собствен монитор на процесите, в който може да получавате информация за използваните ресурси, а също така да убивате процеси. В бъдеще може би ще бъде напълно функционален task menager със задаване на приоритети и повече системна информация. Ето как изглежда task manager на този етап:

Процеситe в Chrome са 3 типа: браузър, визуализатор (renderer) и приставка (plug-in). Браузърът е един единствен процес, който управлява всички табове, прозорци, грижи се за работата с диска, мрежата, входа и изхода. Също така процесът браузър стартира renderer процес - по един за всеки сайт. Renderer процесите нямат директен достъп до В/И устройства. Процесът браузър създава и другият тип процеси - приставки (flash, silver light, media player, quick time и т.н.).
При стартиране Chrome създава браузър процеса, а той от своя страна стартира renderer процес за всеки нов сайт. Така всеки уеб сайт е изолиран от останалите. Това също така не значи, че два или повече таба не могат да споделят един renderer процес! За какво може да послужи това ли ? - пример: разглеждате дадена уеб страница и JavaScript отваря нов таб, или вие последвате връзка към този сайт в нов таб. И в двата случая табовете ще споделят един renderer процес. Естествено, ако посетите нов сайт в някой от табовете ще се генерира нов процес. Както казват в рекламите "и това не е всичко!":). Ако разглеждате страници от един домейн, но различни поддомейни за тях ще се използва един процес, а това е необходимо за скриптовите езици. Разбира се има и едно НО! Ако отваряте по стотици табове (както правя аз обикновено), няма да се стартират толкова на брой renderer процеса, защото това ще забави компютъра ви. Поради тази причина броят им е ограничен до 20. Веднага казвам, че това по никакъв начин не лимитира броя на табовете или разглежданите страници до толкова. Решението е просто: един renderer процес може да обработва по няколко сайта, но за това как е реализарано не смятам да пиша. Повече подробности за процесите тук.
Както в някои други съвременни браузъри, ако в адресната лента на Chrome въведете about:ххх ще си изведе допълнителна информация. Наличните до момента са:
  • about:version - версията на Chrome, WebKit, V8 (JavaScript engine) и user-agent;

  • about:plugins - извежда наличнити приставки;
  • about:cache - извежда кеша. За големината на кеша няма лимит, затова е добра идея да се чисти от време на време;
  • about:memory - извежда информация за всички стартирани браузъри и за процесите на Chrome. Пуснал съм всички налични браузъри в момента:
  • about:stats - броячи и таймери;

  • about:histograms - говори само за себе си:

  • about:dns - адресите на 10 най- посещавани сайта, ако в настройките е активирана опцията "Use DNS pre-fetching to improve page load performance";

  • about:network - вижте сами:

  • about:crash - страницата, която се визуализира при грешки или възникнали проблеми;

  • about:hang - ако процесът забие напишете about:hang и продължете работата си. Колко е просто ...

Ето и кратка демонстрация на възможностите на Chrome:


Накрая малко впечатления и изводи:

+ изчистен интерфейс

+ сравнително добра производителност

+ отворен код

- гугъл => достъп до повече информация за потребителите в интертет за вътрешно ползване, а защо не и за продаване. Само 9 часа след пускане на първата бета версия Chrome си извоюва 1% от другите браузъри. Това дори Firefox не успя да направи.

- липса на add blocker на този етап;

- забелязах, че при визуализациата на флаш производителността пада, a при по-тежки сайтове се е стигало до забиване;

- за момента е налична само версия за Windows.


Редактрано

Адаша е писал за новостите по темата - Google Chrome OS .

Bill Gates & Seinfeld & Microsoft



Някой сеща ли се за смисъла на рекламата ? След няколко гледания и размишления стигнах до извода, че това най-вероятно е отговор на Aple и тяхната рекламна програма "Get a Mac".

Задачи за възрастни

зад. 1

Разтопена от ласките на съученика си Таня легнала в хоризонтално положение по гръб на гъстата трева. При това е успяла да погледне, че опашката на съзвездието Голяма мечка се намира на 35 градуса от хоризонта. Когато съученика и се навдигна от нея с думите „Видя ли, а ти толкова се плашеше..” тя видя, че опашката на Голямата мечка е застанала под ъгъл 15 градуса от хоризонта.
Колко време Таня е прекарала в хоризонтално положение?

зад. 2

Организма на нормалният дванадесетокласник съдържа 8 грама сперма. След изпразване в продължение на час, запаса от сперма се възстановява на 70% от началното състояние. Нека младежът се изпразва един път в час.
- Колко часа са необходими за да остане само с 1 грам сперма?
- Колко грама сперма е отделил за това време?
- Възможна ли е ситуация, когато в него няма да остане никаква сперма?

зад. 3

Плешивината на главата на чичо Гошо е с форма на правилен кръг с диаметър 9 сантиметра. Жената на чичо Гошо твърди, че плешивината се е появила от изневерите му.
- Колко изневери е направил чичо Гошо, ако след всяка изневяра плешивината му се увеличава с 0.5 кв.см.

зад. 4

За да се изпразни Иван прави 35 фрикции, а приятелят му Марин - три пъти повече. Съседката им Таня достига висшата си точка за 38 фрикции.
- Колко пъти и с кой ще достигне връхната си точка Таня, ако Иван е пръв, а Марин веднага след него?
- А ако са обратно - Марин е пръв, а Иван втори?
Обосновете решението на задачата графично с помощта на синусоиди.

зад. 5

Иван и Мария са избягали от часа по физкултура и са се уединили в класната стая. Иван може да чуе човек, идващ по коридора за 7 метра от вратата на стаята, а Мария за 3 метра. За да си оправи дрехите на Иван му са нужни 5 секунди, а на Мария 11 секунди. По коридора с 2км/час се движи директорът.
- В какво състояние ще намери той Иван и Мария ако:
а) пръв го чуе Иван.
б) Иван не го чуе, а това направи Мария.

зад. 6

Решете задача № 5 ако по коридора с 24 км/час идва съученикът им Петър.

зад. 7

В гардероб има 300 литра въздух. На любовника, скрил се в този шкаф му трябват по 2 литра въздух в секунда. През ключалката постъпва 1 литър свеж въздух в секунда.
- Колко време може да изкара в шкафа любовника преди да се задуши?

зад. 8

Иван е пробил дупка в стената на женската съблекалня с диаметър 6 мм. Тогава той вижда коленете на съученичките си и това което е на 5 см над и под коленете.
- Дупка с какъв диаметър трябва да пробие Иван, за да вижда това, което е на 40 см под и над коленете на момичетата?

зад. 9

Девствената Ивана стиска краката си със сила 8 нютона. Иван се мъчи да разтвори краката и със сила 3 нютона. Говорейки и той отслабва съпротивата и още с 1 нютон. Като се знае, че една целувка сваля съпротивлението на женските крака с 0.5 нютона/час колко време ще е необходимо Иван да целува Ивана, докато преодолее съпротивлението?

зад. 10

Когато Иван свършва, сърцето му прави 144 удара в минута. Към своят нормален ритъм от 75 удара в минута сърцето му се връща след 41 секунди. За Ивана стойностите са 130, 78, 72, съответно.
- Има ли момент в който сърцата и на двамата бият с еднакво количество удара в минута?
- След колко секунди след акта настъпва този момент?

зад. 11

Мъжкият орган на Иван има форма на цилиндър с диаметър 3 см и дължина 8 см. Върхът му представлява полусфера с диаметър 3 см. Във възбудено състояние увеличеният му орган добива размери - дължина 17 см и диаметър 4 см.
- Изчислете необходимият обем кръв, нужна за увеличаването на обема.

задачите са откраднати оттук :)

Howdy World! Еволюция на един програмист

High School/Jr.High

10 PRINT "HELLO WORLD"
20 END

First year in College

program Hello(input, output)
begin
writeln('Hello World')
end.

Senior year in College

(defun hello
(print
(cons 'Hello (list 'World))))

New professional

#include
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;

for(i = 0; i <>
#include

class string
{
private:
int size;
char *ptr;

string() : size(0), ptr(new char[1]) { ptr[0] = 0; }

string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &); string &operator=(const char *); }; ostream &operator<<(ostream &stream, const string &s) { return(stream << operator="(const" size =" strlen(chrs);" ptr =" new" str = "Hello World">);
importheader();
importheader();
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");

// needed typelibs
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");

[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};


#include "ipfix.hxx"

extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);

CHello(IUnknown *pUnk);
~CHello();

HRESULT __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};


#include
#include
#include
#include
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

int CHello::cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}

HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws
", pwszString);
return(ResultFromScode(S_OK));
}


CHello::~CHello(void)
{

// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);

return;
}

#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

#include
#include
#include
#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, "Object path must be specified\n");
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");

printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {


hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}

Apprentice Hacker

#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;

Experienced Hacker

#include
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Guru Hacker

% echo "Hello, world."

New Manager

10 PRINT "HELLO WORLD"
20 END

Middle Manager

mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D

Senior Manager

% zmail jim
I need a "Hello, world." program by this afternoon.

Chief Executive

% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

http://www.ariel.com.au