Archiv | Everyday

| ÄHNLICHE ARTIKEL 08.09.2010 ~ 4 Komentáře | Související články

Vývoj WeizenSpr.eu


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Než se dostanu k vlastnímu tématu, chtěl jsem opět pro všechny účastníkyposlední soutěže děkuji, jsem ve spolupráci s vlastní-shirt Bedrucken.de zorganizoval. Jak jsem slyšel mnoho účastníků vybraných zisky již dorazil.
Dokonce i mě, poštovní doručovatel a vorbeigeguckt Supertolles Weizenspr.eu T-shirt klesl off. Ještě jednou díky Dennis a mnoho úspěchů s jeho druhou T-shirt shop . : D

WeizenSpr.eu T-Shirt

Ale skutečný oznámení: Jak jsem již jednou zmínil , jsem v procesu přechodu na Hetzner. Zpočátku dal to několik velikostí problémů - to bych mohl, ale naštěstí s několika úpravách uspokojivě vyřešit .

Nyní, téměř ve všech ostatních oblastech již byly přesunuty, je nyní na čase, je coltishWARE.com a WeizenSpr.eu k péči. Takže, budu také rád představil několik nových funkcí, které jsem pak - doufejme - usnadní práci:

  • První jsou domény v budoucnosti společné platformy pro sdílení je - moje vlastní-made multi-stránky vlastnost je díky.
  • Kromě obou nejnovější verzi proudu témat - použití během WeizenSpr.eu Orange bude i nadále ponořen do ještě, coltishWARE.com bude šedý se ponoří do jednoduché.
  • Navíc, obě strany se přibližují k sobě a obsahu. Zatím coltishWARE.com byla většinou ignorována. Zatímco na WeizenSpr.eu zatím vše - včetně nových programů - bylo zveřejněno, na místech projektu o softwarových aplikací jsou nyní plně přejít na coltishWARE.com coltishWARE.com, a tedy jakousi "Projekt site" být.
  • Dokonce i slušné zálohovací strategie je konečně tady. Zatím jsem platit můj hostitel za to, že vytváří měsíční úplné zálohování pro mě. Díky SSH přístup, a jiné hry chci konečně dát do slušné - vlastní - zálohování systému. : D
  • Závěrem bych chtěl řešit jeden z mých největších problémů dětí: Ke stažení. Ty jsou nyní na Download.coltishWARE.com a download archiv rozptýlené. To by se mělo změnit a stahování sami jsou snadněji zvládnout - a to je v současné době používá plugin WP-Download Manager je více problémů, než jich vyřeší.

Jako velký cíl jsem počátkem října - jak reálné to je, uvidím, v příštích dnech a týdnech. Budu se snažit, aby výpadek blog co nejkratší: bývalý Doména Stěhování hlasování mi docela optimistický! : D

Doufám, že mé čtenáře zůstat loajální ;-) . Těším se, aby prozkoumala potenciál mé nové hostingové služby nabízí. Ale sdílené Wordpress instalace byla s mým starým hostitel nikdy možné ... jsme nadšeni! :-)

Vyvíjející se považuje, Kenny



Vysoce kvalitní plátno tisku nemusí být drahé: Na vrcholu zájmu Fotoleinwand.de vaše vlastní fotografie na plátně za trvale nízké ceny - od formátu 30x30 cm za € 12 do plátna XXL velikosti 120x80cm za 55 €.

používané pro vaše fotografie na plátně plátně foto top pouze originální umělec plátno s vysokou kvalitou a trvanlivostí. Díky moderní technologii tisku v žádném okamžiku vašeho obrázku do Real Photo-umělecké dílo je transformován - a za bezkonkurenční cenu!



| ÄHNLICHE ARTIKEL 06.09.2010 ~ 1 Comment | Související články

Idiotství z modrého světla


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Každý motorista by měly být informovány o situaci: Můžete slyšet sirény nouzového lékaře auto, uznává, že hluk pochází z pozadí a přestávek okamžitě do Panic! Jak reagovat na? Měl bych jít rychleji? Měl bych přestat? Jak to bylo zase "street formulář s"?

Konečně, to dělá to jakýmkoliv způsobem uzná za vhodné - sportovní auta svištící jim, hektická dochází okamžitě na brzdy a mít šťastnou cestu běžel tiše na pravé straně. Skutečnost, že nouzové lékaři této nevyzpytatelné chování postupují spíše pomaleji než rychleji, by se pravděpodobně na ruce.

Zejména pěkný případ tohoto idiotství jsem měl předtím na mé cestě do práce. Jezdím one-lane dálnici (100 km) a z opačného směru je ambulance. Auta na boku vozu náhle zastavil veškeré zůstat a pokusit se vytvořit pruhu. Tak, že lékaři nyní na všech dalších je, samozřejmě, musí také zastavit auta na protějším jízdním pruhu a vytvořit prostor.
Jak hloupé je to, prosím? Protože nikdo nemůže myslet s trochu času? Opět: Lidé tam s 100km / h po! Teď ale prosím za mě, jak rychle ambulance jezdit teď, když má protáhnout tak, ulici! 50-60kmh by měla být v úzké venkovské silnici asi max! A je tu ještě není za to, že auto má brzdy silně první, protože, jak někteří lidé mají lehnout uprostřed trati na brzdy!

Bohužel, zdá se, že žádný předepsaný postup pro tyto případy dát. Když se dobrovolník hasiči Garham jsem, jak toto prohlášení nalezeno:

Pro mnoho protijedoucí vozidla nebo v jejich blízkosti silnic, může být někdy užitečné, ulice na další výjezd a zahněte doleva. Automobily jsou obvykle rychlejší než velké hasičské vozy.

A tak musím být v budoucnu sledovat, jak ambulance lidé 100km / h na téměř 0km / h zpomalit tak, že to "rychle", přijde ...

Idiotský S pozdravem, Kenny

| ÄHNLICHE ARTIKEL 03.09.2010 ~ 3 Komentáře | Související články

Wubi - Linux pro Windows Installer


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Jsem v procesu zpátky na trať, aby mi EEE PC s Windows XP a jemu a Puppeee vybavit.

Během mého výzkumu jsem narazil na nástroj ultrageniales: Wubi ! Je to instalátor Ubuntu, které mohou v systému Windows stejně jako normální instalační program používat : D !
Místo: Je tedy vytváří jakousi virtuální oddíl, který je na mém oddílu Windows. Pro instalaci si tedy musí dbát na to, ztratil oddíl, zavaděč nebo zbytku instalace ... a pokud nemáte touhu Linux, můžete ji odinstalovat snadno.

Celek není jednoduchý způsob, jak porovnat s virtualizací. Při spuštění, můžete si vybrat zavaděč systému Windows, pokud chcete nahrát Windows, nebo nainstalované Ubuntu. ... prostě úžasné! : D

Dvojnásobný bota S pozdravem, Kenny

| ÄHNLICHE ARTIKEL 02.09.2010 ~ 1 Comment | Související články

[Aktualizace], myšlenky na světlo ...


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Vlastně se mi líbí to tak, že jezdím každý den autem přibližně tři čtvrtě hodiny do práce. Pro když jsem řídit auto, jsem to dost času, někdy o Bohu a světě myslet.

Tentokrát jsem přemýšlel o světlo, barvu a teplo. Vlastně, předměty skutečně všichni ve škole. Barvy jsou lehké a vůbec neviděl to tak - v podstatě, to je jen na fotony , takže něco jako energie míče . Pokud se nyní v našem oku na jedné z barevných receptorů ( kužele ) splňují, budou určité barvy vykládat . Zda bílých lidí jsou bílé, takže v podstatě jen záleží na tom, jak mozek analyzuje informace z receptorů a montuje.

To je docela vzrušující, protože naše tělo má kromě barvy receptory oka ještě další smyslový orgán, že fotony mohou mít toto: na kůži . To je vzrušující, protože kůže v teorii dělá stejnou práci jako oči, to ale úplně jinak.
Možná, že říká, že teď na jedné či druhé "Moje kůže není vidět světlo, ne!" To je také pravda ... kůže nereaguje na viditelné světlo z elektromagnetického spektra , ale reagoval na tepelné záření , které jsou většinou v infračerveném spektru je : D ! Tepelného záření - nebo zejména infračervené světlo - by teoreticky mohla být vnímána našich očích, když to bude v pořádku dost.
To by nám výhodu i v přírodě, protože pak bychom mohli vidět živé věci dokonce v úplné tmě - pouze na základě (neviditelný pro lidi), světlo, které oni vydávají.
Nebo jiný způsob myšlení: Představte si, Jen si představte, můžete vytvořit umělé kůže, která nereaguje na tepelné záření, ale na paprsky viditelného světla. Pak kůži, by se mohla "cítit", když se blíží objekt - jaksi děsivý nápad. ;-)

Také legrační: Když krát na druhý konec spektra je, vás přijde na ultrafialové záření - to jsou paprsky, které způsobují rakovinu kůže, poškození genetického materiálu, a proto, že kůže je náš ochranný pigmenty.
Zvláštností tohoto záření UV je, že průsvitné skleněné obvykle undurchlässlig na UV záření je. Pokud bychom měli Představte si, že jsme mohli vidět pouze ultrafialové světlo, pak by to znamenalo, že sklo by nebyla vůbec transparentní nám.
Otázka, která vyplývá z tohoto poznání, by byla: Je možné, že existují bytosti tam, že můžete prohlédnout přes kamenné zdi, jak vidíme přes sklo? : D

Co si myslíte? Je to viditelné i neviditelné světlo není velká věc? :-)

Update:
Byl jsem požádán, jestli by bylo teoreticky možné vidět nebezpečného záření. Odpověď je: částečně, zčásti. Radioaktivní záření, které známe, je v podstatě tři typy záření: alfa záření , beta záření a gama záření . Zatímco gama záření - záření - potenciálně "elektromagnetickým vnímána jako" může být, to vypadá na alfa a beta záření z různé: a sice, nejsou moc pelety vystřelil, ale částice záření emitovaného. Jinými slovy: Kromě baterku (záření gama) záření zahrnuje také dlažební kameny (alfa a beta záření).
Podle definice, mimochodem, je alfa záření (skládající se z helium jádra), nejnebezpečnější: Když se tyto částice narážejí jako genom do buněk, DNA mají být zničeny, a způsobit mutace v buněčném dělení (rakovina). Nicméně, gama záření, které je obávaný: a sice, může to být obtížné , aby chránila . To znamená, že obal gama zářič s hodně materiálu, potřebuje víc záření může proniknout ven.
Nicméně, je zde možnost částic obíhajících dokázat toto: takzvaný Geiger-Müller pult (lépe známý jako pult Geiger). V tomto, kladně nabité částice záření hit plyn, jehož elektrony jsou uvolnění. Tyto elektrony pak vytvořit elektrický proud, což svědčí o vlivu částic.
Doufám, že jsem mohl odpovědět na otázku, přiměřeně uspokojivá. : D

Osvícený pozdravem, Kenny

PS: Love biologové, chemici a fyzici, zeptejte se mě ne pro pseudo-výlety-kůže, které jsem se zavázaly v tomto článku. Máte-li opravy, ocenil bych připomínky. :-)

| ÄHNLICHE ARTIKEL 01.09.2010 ~ 0 Komentáře | Související články

Co je to síť neutrality?


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

V současné době se v mnoha koutech debaty o tom, zda takzvaný neutrality sítě bude zakotveno v zákoně, nebo zda dokonce mohla vzít na síti neutrality změknout .
Nicméně, protože většina lidí by vůbec pochopit, co má se sítí neutrality, pomyslel jsem si, že bych někdy namáhat až k dodat pro celou přiměřeně dobré vysvětlení.

Dovolte nám proto, než jednou, že existují pouze dvě lokality po celém světě (zbytek lze odvodit analogicky). Tyto tři lokality jsou "Deutschland.de" a "Youtube.de. Člověk sám je nyní zákazník objednal deutschlandCOM a přístup k internetu.

S garantovanou síť neutrality by se snadno navštívit i stránky. Oba weby by zatížení stejnou rychlostí, ať se přihlásíte k odběru text, obrázky nebo videa. Vzhledem k tomu, "Deutschland.de" poskytuje pouze nudný text, tato stránka je stěží nazývá. Pak můžete sledovat na "Youtube.de", ale ty nejlepší a nejnovější videa, je na tuto stránku často volal, a produkuje velké množství údajů, které zasílají přes přes net. Ale všechno není problém, protože "Youtube.de" zaplatil za to, aby mohl šířit co nejvíce dat. Tak to je dnes.

Bez neutrality sítě, mohlo by to v budoucnu vypadat takto: V pořádku, Internet má na výběr ze tří balíčků - "Internet Basic", "Internet vesmíru" a "All Internet Premium".

V "základní internetové" může být dosaženo v deutschlandCOM pouze vybraných lokalitách. V našem příkladu by to jen "Deutschland.de" s nudný vládních dokumentů. Chcete-li získat více, museli bychom platit více - řekněme "Internet prostor" balíček. Nyní můžete konečně podívat na všech stranách ... ale divné ... "Youtube.de" čte mnohem pomaleji, než "Deutschland.de"? Vzhledem k tomu, "Youtube.de" produkuje více dat, bylo to heruntergeregt - "výhody" ze všech. Protože pokud budete "Youtube.de bude" vidět při normální rychlosti, můžete si laskavě, ale ještě dražší "Premium Všechny Internet pořadí. Že "Youtube.de" již zaplacené Mehrdaten je, že na tom nezáleží.

Tak se stává, že lidé, kteří si mohou dovolit pouze standardní připojení k internetu, mohou vidět pouze určitého obsahu na webu. Lidé s více penězi můžete prohlédnout celý Internet - jak dlouho jak tam je takový balíček. Pro toho, kdo říká, že není nějaký "Internet space" balíčky budou zrušeny? Jak se takový svět vypadá, můžeme již pozorovat v zemích jako je Čína. Ale i tam se celá věc stane, ovšem pouze za "prospěch" všech ...

Neutral Zdravím, Kenny

| ÄHNLICHE ARTIKEL 29.srpna 2010 ~ 3 Komentáře | Související články

WordPress Multi-Site vlastnost kacke!


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Jsem se opravdu snažil! Několikrát ve skutečnosti! Chtěl jsem skutečně soutěžit s multi-stránky rysem Wordpress zvyknout, že od verze 3.0 až začlenění multi-uživatelské vydání je k dispozici. Ale nefunguje to snadné!

Mám upřímně ani ponětí, co Frickler tam byl v práci, aby si s tímto - vlastně docela praktické - Celovečerní tak! Zde se základní myšlenkou je opravdu docela pěkné: Díky instalaci WordPress budou provedeny, aby počet blogů - každý má svůj vlastní obsah -. To vše by být podporovány administrativní uživatele, takže každý uživatel - potenciálně - má přístup k více blogů ve stejném zařízení.

Multi-Site Super Admin

Ale co je výsledek? Nastavení je velmi jednoduchá: konfigurace s cílem vytvořit síť. Pak se všechno znovu nastavit, aby se síť k dispozici. Pak můžete přidávat nové destilační a povolí uživatelům přístup na Blog A, B a C.
Ale za jakou cenu? Začíná na Schonmal, takže nemůžete nainstalovat WordPress v podsložce - z jakéhokoli důvodu není podporován. Pak náhle zmizí nastavení, které mají oprávněné nic, opravdu nic do činění s multi-funkce webu ...

Leseeinstellungen vs dříve. později

... Chcete-li chybějící nastavení, musíte použít jeden z více než směšné Super-Blog možnost konfigurace Admin, kde můžete ručně změnit hodnoty ...

Super Admin Blog Možnosti

... A k tomu všemu musíme pak také třetí-party komponenty použité, domény rovněž přiřadit vlastní blogy, aby bylo možné (s plugin se mnou jen vede k nekonečné smyčky a ničí přihlášení).

Z mé strany, nebudu používat tuto funkci zcela verbastelte stejně. Pokud nechcete jen poskytovat blogů pro všechny cizince lidi jistě existují lepší způsoby, jak dosáhnout přijatelnou alternativu. Dva příklady takových alternativ, rád bych vám ukázat. , Která je sice méně pohodlné (ve smyslu společných správu uživatelů), ale dělají přesně to, co běžný uživatel bude pravděpodobně blog:

  • více blogů může fungovat
  • každému blog vlastní doménu může
  • pouze jeden WordPress instalace musí zachovat

Řešení samotné jsou podobné těm, které WordPress.org sám naznačuje pouze to, že celá práce s jediným kódu. První řešení je vhodné pro lidi, kteří mají pouze jednu databázi k dispozici, ale přesto použít více WordPress blogy rovnoběžné:
V souboru wp-config.php je proměnná $ table_prefix. Změnou této proměnné můžete přepínat mezi různými případy WordPress a podobně. Pokud se jedna teď, že je pro různé domény WordPress případech (ale se stejným kódem základny) bude mít, musí se prostě aby to prefix pouze z hostitelského tématu:

1
'wp_' + strtolower ( ereg_replace ( "[^A-Za-z]" , "" , $_SERVER [ "HTTP_HOST" ] ) ) + "_" ; $ Table_prefix = 'wp_' + strtolower ( ereg_replace ("[^ A-Za-z]", "", $ _SERVER ["HTTP_HOST"])) + "_";

Zde je háček: Je-li někdo s dříve neznámé oblasti blog zařízení mohou volat, to má možnost mít svůj vlastní blog! Aby se tomu zabránilo, jeden by měl buď postavit dotaz, zda hostitel je jedním seznam počítačů, na které se blog již existuje, nebo to dělá soubor nepřístupný wp-admin/install.php.

Lidé, kteří si vytvořit libovolný počet databází, jít jinou cestou - tato část budu pravděpodobně používat. Co je jednoduchý: použít název databáze a (volitelně) uživatelské jméno a heslo může být odvozena od hostitele. Výhodou je, že instalace problém je eliminován s nesprávným hostitele.

1
2
3
4
5:00
6
7
8
9
10
strtolower ( ereg_replace ( "[^A-Za-z]" , "" , $_SERVER [ "HTTP_HOST" ] ) ) ; $ ClearedHost = strtolower ( ereg_replace ("[^ A-Za-z]", "", $ _SERVER ["HTTP_HOST "]));
ereg_replace ( "[^A-Za-z0-9]" , "" , base64_encode ( pack ( "H*" , sha1 ( "SALT" . $clearedHost ) ) ) ) ; $ GeneratedPwd = ereg_replace ("[^ A-Za-z0-9]", "", base64_encode ( pack ("H *", sha1 ("sůl". clearedHost $))));

/ / ** MySQL nastavení - můžete si to info z webového hostitele ** / /
'DB_NAME' , 'DBNAME_' . $clearedHost ) ; definovat ('DB_NAME', 'DBNAME_'. clearedHost $);
'DB_USER' , 'USERNAME_' . $clearedHost ) ; definovat ('DB_USER', 'USERNAME_'. clearedHost $);
'DB_PASSWORD' , $generatedPwd ) ; definovat ('DB_PASSWORD', $ generatedPwd);
'DB_HOST' , 'DBSERVER' ) ; definovat ('DB_HOST', 'DBSERVER');
'DB_CHARSET' , 'utf8' ) ; definovat ('DB_CHARSET', 'utf8');
'DB_COLLATE' , '' ) ; definovat ('DB_COLLATE','');

V tomto příkladu byste měli nahradit zástupný symbol "sůl", "dbname", "Uživatelské jméno" a "DBSERVER" skrze jeho vlastní data. "Sůl" se používá způsob, jak dostat ven nemůže připojit pomocí doménu do databáze heslo. ;-)

Doufám, že jsem mohl dát nějaké nové poznatky, a přejeme vám hodně zábavy s vaší instalace WordPressu! : D

A nezapomeňte: Já nejsem odpovědný za škody na software, hardware, nebo poškození majetku a že tyto změny jsou způsobeny použitím nebo by mohly vzniknout. ;-)

Vícenásobné Zdravím, Kenny

| ÄHNLICHE ARTIKEL 24.srpna 2010 ~ 4 Komentáře | Související články

Vaše Twitter - jak se vám líbí!


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

@ Dqmhose nedávno se mě zeptal, zda je s Stylový je možné Twitter zpráv od lidí, skrýt, neznáte. Jeho důvod: Mnohé z těchto zpráv jsou opravdu spam, a tedy zanedbatelný.

Vzhledem k tomu, Twitter zprávy od neznámých osob, které nejsou označeny další CSS, moje odpověď byla "Ne" - ale slíbil jsem mu, že jsem anzugucken i vědět, jestli celá ta věc s Greasemonkey možné. Na rozdíl od Stylový je definována na tuk Monkey není prostě jen trochu CSS, ale může být používání JavaScript větší vliv na místě.

Jen práce uspořádané, nicméně, protože to není vůbec snadné zjistit, které jsou lidé známí pro všechny. O použití Twitter API, bych však vzdát každém případě - snaha bych nemají žádnou hodnotu : D !
To je důvod, proč moje řešení funguje staly puzzle práce - dělá to tak jako tak ;-) . Jak přesně, povím vám stejný ...

1
2
3
4
5:00
6
7
8
9
10
11
12
13
14
15
16
17
18
19:00
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
/ / == == Uživatel Script
/ / @ Name blokování zpráv od-followings Non
/ @ Namespace http://weizenspr.eu
/ / @ Include * http://twitter.com/
/ / @ Include https: / / twitter.com / *
/ / == / User script ==

true ; var zkontrolovat homescreen = true;
2000 ; // in milliseconds (values <= 0 deactivate the timer) var hideAgainTimer = 2000 / / v milisekundách (hodnoty <0 = vypnutí časovače)
[ "followers" , "followings" ] ; // can either be "followers" and/or "followings" Tito lidé var show = ["následovníci", "followings"], / / může být buď "následovníci", a / nebo "followings"
true ; var showDebugAlerts = true;

/ / DO NOT EDIT pod touto LINE

/ / Možnosti
"followers" ; followersOption var = "následovníci";
"followings" ; followingsOption var = "followings";

/ / Twitter názvy stránek
"Twitter / People who follow " ; followersTitle var = "Twitter / lidé, kteří následují";
"Twitter / People " ; followingsTitle_Start var = "Twitter / Lidé";
" is following" ; followingsTitle_Stop var = "je po";
"Twitter / Home" ; Domů var title = "Twitter / Home";
"Twitter / @" ; var odpověď title = "Twitter / @";

/ / Twitter URL
"http://twitter.com/following" ; followingsURL var = "http://twitter.com/following";
"http://twitter.com/followers" ; followersURL var = "http://twitter.com/followers";
"http://twitter.com" ; twitterHost var = "http://twitter.com";

/ / Twitter ID a třídy
"hentry u-" ; className_Start var = "hentry U";
" status" ; className_Stop var = "status";
" share status" ; className2_Stop var = "share";
"me next" ; nextLinkRel var = "mě další";
"pagination" ; paginationId var = "stránkování";
"timeline" ; timelineId var = "time line";
"session-user-screen_name" ; usernameMeta var = "session-user-screen_name";
"label screenname" ; userSpanClass var = "label přezdívku";

/ / HTML a CSS fragmenty
"a" ; anchorTag var = "";
"none" ; displayNone var = "none";
"div" ; divTag var = "div";
"li" ; ItemTag var = "LI";
"meta" ; var metaznačky = "meta";
"p" ; paragraphTag var = "p";
"span" ; spanTag var = "span";

/ / Greasemonkey volba jména
"following_" ; followingOption var = "following_";
"followingCount" ; followingCountOption var = "followingCount";

getUsernameFromMeta ( ) ; var username = getUsernameFromMeta ();
username != null ) { if (uživatelské jméno! = null) (
document. title . toLowerCase ( ) == ( followingsTitle_Start + username + followingsTitle_Stop ) . toLowerCase ( ) ) || if ((document. titul. toLowerCase () == (followingsTitle_Start + uživatelské jméno + followingsTitle_Stop). toLowerCase ()) | |
. toLowerCase ( ) == ( followersTitle + username ) . toLowerCase ( ) ) ) { (Document. titul. ToLowerCase () == (followersTitle + uživatelské jméno). ToLowerCase ())) (
false ; showFollowers var = false;
false ; showFollowings var = false;

showThesePeople != null ) { if (show těchto lidí! = null) (
var index = 0 ; index < showThesePeople. length ; index ++ ) { pro (var index = 0; index <show těchto lidí. délku; index + +) (
showThesePeople [ index ] . toLowerCase ( ) == followersOption. toLowerCase ( ) ) { if (ukázat lidem [Tyto index]. toLowerCase () == followersOption. toLowerCase ()) (
; showFollowers = true;
)
showThesePeople [ index ] . toLowerCase ( ) == followingsOption. toLowerCase ( ) ) { if (ukázat lidem [Tyto index]. toLowerCase () == followingsOption. toLowerCase ()) (
; showFollowings = true;
)
)

showFollowers && showFollowings ) { if (& & showFollowers showFollowings) (
confirm ( "Do you want to update your followings userlist?" ) ; var pokračovat = potvrzení ("Chcete aktualizovat followings Seznam uživatelů");
proceed ) { if (pokračovat) (
null ; allFollowers var = null;
null ; allFollowings var = null;

showFollowers ) { if (showFollowers) (
followersURL ) ; allFollowers = retrieveFollowings (followersURL);
)
showFollowings ) { if (showFollowings) (
followingsURL ) ; allFollowings = retrieveFollowings (followingsURL);
)

new Array ( ) ; Total-var = new Array ();
0 ; var count = 0;

allFollowers != null ) { if (allFollowers! = null) (
var indexA = 0 ; indexA < allFollowers. length ; indexA ++ ) { pro (var indexA = 0; indexA <allFollowers. délku; indexA + +) (
] = allFollowers [ indexA ] ; Total-list [Počet + +] = allFollowers [indexA];
)
)
allFollowings != null ) { if (allFollowings! = null) (
var indexB = 0 ; indexB < allFollowings. length ; indexB ++ ) { pro (var indexB = 0; <allFollowings indexB. délku; indexB + +) (
] = allFollowings [ indexB ] ; Total-list [Počet + +] = allFollowings [indexB];
)
)

; saveFollowings (celkem-);

showDebugAlerts ) { if (showDebugAlerts) (
"Finished update: " + totalList. length + " entries added" ) ; alert ("Dokončeno update:" + Total-. + 'položky délka přidán ");
)
)
)
)
)

document. title . toLowerCase ( ) == homeTitle. toLowerCase ( ) ) && ( checkHomeScreen ) ) { if ((document. titul. toLowerCase (doma == hlava). toLowerCase ()) & & (check domovské obrazovce)) (
hideUnwantedReplies ();
)

document. title . toLowerCase ( ) == ( replyTitle + username ) . toLowerCase ( ) ) { if (document. titul. toLowerCase () == (odpověď hlava + uživatelské jméno). toLowerCase ()) (
hideUnwantedReplies ();
)
)

getUsernameFromMeta funkce () (
null ; var vysledek = null;

document. getElementsByTagName ( metaTag ) ; var allMetas = dokumentu. getElementsByTagName (meta tag);
null ; singleMeta var = null;

var index = 0 ; index < allMetas. length ; index ++ ) { pro (var index = 0; <allMetas index. délku; index + +) (
index ] ; singleMeta allMetas = [index];

singleMeta != null ) { if (singleMeta! = null) (
singleMeta. name . toLowerCase ( ) == usernameMeta. toLowerCase ( ) ) { if (singleMeta. jméno. toLowerCase () == usernameMeta. toLowerCase ()) (
; vysledek = singleMeta. obsahu;

break;
)
)
)

return vysledek;
)
clearFollowings funkce () (
GM_getValue ( followingCountOption , 0 ) ; var = followingCount GM_getValue (followingCountOption, 0);

var index = 0 ; index < followingCount ; index ++ ) { pro (var index = 0; index <followingCount; index + +) (
index ) ; GM_deleteValue (followingOption + index);
)
; GM_deleteValue (followingCountOption);
)

loadFollowings funkce () (
null ; var vysledek = null;

GM_getValue ( followingCountOption , 0 ) ; var = followingCount GM_getValue (followingCountOption, 0);

followingCount > 0 ) { if (followingCount> 0) (
Array ( followingCount ) ; Výsledek = new Array (followingCount);

var index = 0 ; index < followingCount ; index ++ ) { pro (var index = 0; index <followingCount; index + +) (
= GM_getValue ( followingOption + index ) ; výsledek [index] = GM_getValue (followingOption + index);
)
)

return vysledek;
)

followingsArray ) { Funkce saveFollowings (followingsArray) (
clearFollowings ();

followingsArray != null ) { if (followingsArray! = null) (
followingsArray. length ) ; GM_setValue (followingCountOption, followingsArray. Délka);

var index = 0 ; index < followingsArray. length ; index ++ ) { pro (var index = 0; index <followingsArray. délku; index + +) (
index , followingsArray [ index ] ) ; GM_setValue (followingOption + index, followingsArray [index]);
)
)
)

followingsArray , itemClassName ) { Odpověď kontrola funkce třídy (followingsArray, itemClassName) (
false ; var vysledek = false;

followingsArray != null ) { if (followingsArray! = null) (
var index = 0 ; index < followingsArray. length ; index ++ ) { pro (var index = 0; index <followingsArray. délku; index + +) (
className_Start + followingsArray [ index ] + className_Stop ) . toLowerCase ( ) == itemClassName. toLowerCase ( ) ) || if (((+ className_Start followingsArray [index] + className_Stop). toLowerCase () == itemClassName. toLowerCase ()) | |
followingsArray [ index ] + className2_Stop ) . toLowerCase ( ) == itemClassName. toLowerCase ( ) ) ) { ((+ ClassName_Start followingsArray [index] + className2_Stop). ToLowerCase () == itemClassName. ToLowerCase ())) (
; Výsledek = true;

break;
)
)
)

return vysledek;
)

hideUnwantedReplies funkce () (
loadFollowings ( ) ; var followings loadFollowings = ();
document. getElementById ( timelineId ) ; var časová osa = dokumentu. getElementById (timelineId);

timeline. getElementsByTagName ( itemTag ) ; var = allitems časové ose. getElementsByTagName (ItemTag);
null ; singleItem var = null;

var index = 0 ; index < allItems. length ; index ++ ) { pro (var index = 0; <allitems index. délku; index + +) (
index ] ; singleItem allitems = [index];

singleItem != null ) { if (singleItem! = null) (
! checkReplyClass ( followings , singleItem. className ) ) { if (! zkontrolovat reakce třídy (followings, singleItem. className)) (
= displayNone ; singleItem styl .. zobrazení = displayNone;
)
)
)

hideAgainTimer > 0 ) { if (hideAgainTimer> 0) (
hideAgainTimer ) ; setTimeout (hideUnwantedReplies, hideAgainTimer);
)
)

/ / Jak převzat z http://www.developers-guide.net/c/117-eine-einfuehrung-in-ajax-und-xmlhttprequest.html
createHttpRequest funkce () (
null ; var vysledek = null;

window. ActiveXObject ) { if (window. ActiveXObject) (
zkuste (
/ / IE 6 a vyšší
ActiveXObject ( "MSXML2.XMLHTTP" ) ; Výsledek = new ActiveXObject ("Msxml2.XMLHTTP");
( e ) { ) Catch (e) (
zkuste (
/ / IE 5
ActiveXObject ( "Microsoft.XMLHTTP" ) ; Výsledek = new ActiveXObject ("Microsoft.XMLHTTP");
( e ) { } ) Catch (e) ()
)
{ ) Else (
window. XMLHttpRequest ) { if (window. XMLHttpRequest) (
zkuste (
/ / Mozilla, Opera, Safari ...
XMLHttpRequest ( ) ; Výsledek = new XMLHttpRequest ();
( e ) { } ) Catch (e) ()
)
)

return vysledek;
)

url ) { retrieveSource funkce (URL) (
null ; var vysledek = null;

createHttpRequest ( ) ; var HTTPRequest createHttpRequest = ();

httpRequest != null ) { if (HTTPRequest! = null) (
"GET" , url , false ) ; HTTPRequest. Open ("GET", url, false);
null ) ; HTTPRequest. zaslat (null);

httpRequest. readyState == 4 ) && ( httpRequest. status == 200 ) ) { if ((readyState == 4 HTTPRequest.) & & (stav == HTTPRequest. 200)) (
; vysledek = HTTPRequest. responseText;
)
)

return vysledek;
)

source ) { retrieveEntries funkce (zdroj) (
new Array ( ) ; var vysledek = new Array ();
0 ; var count = 0;

source != null ) { if (zdroj! = null) (
document. createElement ( paragraphTag ) ; var element = dokumentu. createElement (paragraphTag);
source ; element. innerHTML = zdroj;

null ; allAnchors var = null;
null ; var jeden kotevní = null;

element. getElementsByTagName ( spanTag ) ; var element = allSpans. getElementsByTagName (spanTag);
null ; singleSpan var = null;

allSpans != null ) { if (allSpans! = null) (
var index = 0 ; index < allSpans. length ; index ++ ) { pro (var index = 0; <allSpans index. délku; index + +) (
index ] ; singleSpan allSpans = [index];

singleSpan != null ) { if (singleSpan! = null) (
singleSpan. className . toLowerCase ( ) == userSpanClass. toLowerCase ( ) ) { if (className singleSpan .. toLowerCase () == userSpanClass. toLowerCase ()) (
( anchorTag ) ; allAnchors = singleSpan. getElementsByTagName (anchorTag);

allAnchors != null ) && ( allAnchors. length > 0 ) ) { if ((allAnchors! = null) & & (allAnchors. délka> 0)) (
0 ] ; Jednotlivou kotvu allAnchors = [0];

singleAnchor != null ) { if (jednotlivou kotvu! = null) (
] = singleAnchor. innerHTML ; Výsledkem [počítat + +] = single kotvy. innerHTML;
)
)
)
)
)
)

"" ; element. innerHTML = "";
)

return vysledek;
)

source ) { retrieveNextPage funkce (zdroj) (
null var vysledek = null

source != null ) { if (zdroj! = null) (
document. createElement ( paragraphTag ) ; var element = dokumentu. createElement (paragraphTag);
source ; element. innerHTML = zdroj;

null ; allAnchors var = null;
null ; Kotevní var jediný = null;

element. getElementsByTagName ( divTag ) ; var element = allDivs. getElementsByTagName (divTag);
null ; singleDiv var = null;

allDivs != null ) && ( allDivs. length > 0 ) ) { if ((allDivs! = null) & & (allDivs. délka> 0)) (
var indexA = 0 ; indexA < allDivs. length ; indexA ++ ) { pro (var indexA = 0; indexA <allDivs. délku; indexA + +) (
indexA ] ; singleDiv = allDivs [indexA];

singleDiv != null ) && ( singleDiv. className . toLowerCase ( ) == paginationId. toLowerCase ( ) ) ) { if ((singleDiv! = null) & & (singleDiv. jméno třídy. toLowerCase () == paginationId. toLowerCase ())) (
( anchorTag ) ; allAnchors = singleDiv. getElementsByTagName (anchorTag);

allAnchors != null ) && ( allAnchors. length > 0 ) ) { if ((allAnchors! = null) & & (allAnchors. délka> 0)) (
var indexB = 0 ; indexB < allAnchors. length ; indexB ++ ) { pro (var indexB = 0; <allAnchors indexB. délku; indexB + +) (
indexB ] ; Jednotlivou kotvu = allAnchors [indexB];

singleAnchor != null ) && ( singleAnchor. rel . toLowerCase ( ) == nextLinkRel. toLowerCase ( ) ) ) { if ((jednotlivou kotvu! = null) & & (singleAnchor. rel. toLowerCase () == nextLinkRel. toLowerCase ())) (
; Výsledek = jeden kotvy. href;

break;
)
)
)
)
)
)

"" ; element. innerHTML = "";
)

return vysledek;
)

url ) { retrieveFollowings funkce (URL) (
new Array ( ) ; var vysledek = new Array ();
0 ; var count = 0;

retrieveSource ( url ) ; var source = retrieveSource (url);
null ; NextPage var = null;
retrieveEntries ( source ) ; var výstup = array retrieveEntries (zdroj);

outputArray != null ) && ( outputArray. length > 0 ) ) { if ((výstupní pole! = null) & & (outputArray. délka> 0)) (
var index = 0 ; index < outputArray. length ; index ++ ) { pro (var index = 0; index <výstupní pole. délku; index + +) (
] = outputArray [ index ] ; Výsledkem [počítat + +] = výstupní pole [index];
)

do (
source ) ; NextPage = retrieveNextPage (zdroj);

nextPage != null ) { if (NextPage! = nil) (
showDebugAlerts ) { if (showDebugAlerts) (
"Proceeding with next page: " + nextPage ) ; alert ("pokračováním další stránka:" NextPage +);
)

nextPage ) ; source = retrieveSource (NextPage);
source ) ; výstup = array retrieveEntries (zdroj);

outputArray != null ) && ( outputArray. length > 0 ) ) { if ((výstupní pole! = null) & & (outputArray. délka> 0)) (
var index = 0 ; index < outputArray. length ; index ++ ) { pro (var index = 0; index <výstupní pole. délku; index + +) (
] = outputArray [ index ] ; Výsledkem [počítat + +] = výstupní pole [index];
)
)
)
( nextPage != null ) ; ) While (NextPage! = NULL);

showDebugAlerts ) { if (showDebugAlerts) (
result. length + " entries found" ) ; alert (result. délka + "zápisy");
)
)

return vysledek;
)

Prvním krokem je nastavení skriptu. Existuje několik parametrů, které lze nastavit:

  • Kdyby jen odpovědi musí být filtrovány, nebo může být nastavena jako domovské obrazovce API retweet?
  • Všechny kolik milisekund je třeba zvážit znovu, bez odpadků?
  • Čí tweets k zobrazení? Od osob, kterým budete postupovat sami tím, že lidé, kteří po jedné nebo obou skupin?
  • Pokud ladicí zprávy se zobrazují?

Dále musíte mít skript, a poté buď aktivovat, pokud se stránka se seznamem jeho následovníci nebo followings jeho návštěvy. Důvod? Tjaaa ... protože jsem nepoužil API, napsal jsem, že prohledávač durchcrawled tyto stránky, a tak najít lidi, kteří patří do příslušné skupiny ... a volání jedním ze dvou stran bude znamenat začátek crawler. To také znamená, že byste měli navštívit jeden ze dvou pravidelně. ;-)

Filtrování S pozdravem, Kenny

| ÄHNLICHE ARTIKEL 23.srpna 2010 ~ 5 Comments | Související články

[Aktualizace] paměť 2 n kroků * k řešení ...


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Právě teď jsem IT novinky na mezinárodní počítačové vědy olympiáda klopýtl v - to bylo v tomto roce konala pro 22. čas, tentokrát v kanadském Ontariu. úkol jsem byl obzvlášť zaujalo: Jak vyřešit jednu šarži za nejlepší paměť?

V rámci úkolu byl již - museli jsme vytvořit pouze skutečné logiky. Byly tam dva dílčí úkoly ... První z nich se právě vrátil tak daleko, že všechny karty byly zjištěny alespoň jednou. Chcete-li počítat to, byla zjištěna u každého páru - i když to nebylo zjištěno současně - sladký šíření. V daném okamžiku byl self-psaný program obdrží všech 25 možných kapek.
Další úroveň pak bylo, že celá hra promění v maximálně 100 karet (50 karet ve hře), bylo nutno vyřešit. Samozřejmě, je prvním úkolem vyřešit, když jeden vyřešil druhý problém přímo. ;-)

Když jsem se nechat to, mám následující jednoduchý nápad: Proč ne zase všechny karty první, zapamatujte si hodnoty a pak už jen pást pouze páry? Pak budete muset přesně 50 otočí tak, aby znát všechny karty a dalších 50 se obrací k odhalit karty ve dvojicích. :-)

1
2
3
4
5:00
6
7
8
9
10
11
12
13
14
15
16
17
18
PasMemory program;

používá
CardGiver,
Paměť;

var
; Line: string;

začít
PrepareCards;
Hrát hry;

; Writeln ();
'Moves: ' , TurnCounter ) ; Writeln ('Přesune', Counter-turn);
'Over : ' , GameOver ) ; Writeln ('přes', GameOver);
Line ) ; ReadLn (line);
konce roku.
1
2
3
4
5:00
6
7
8
9
10
11
12
13
14
15
16
17
18
19:00
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
CardGiver jednotka;

rozhraní

Boolean ; GameOver funkce: Logická;
Boolean ; PrepareCards funkce: Logická;
CardID : Byte ) : Char ; Turn funkce karty (CardId: Byte): Char;
Integer ; Turn funkce Počítadlo: integer;

provádění

var
[ 1 ..50 ] of Char ; Karta Stack: pole [1 .. 50] z Char;
; První karty: Byte;
; Turn Počet: integer;

Boolean ; GameOver funkce: Logická;
var
Byte ; Index: Byte;
začít
; Výsledek: = true;

Low ( CardStack ) to High ( CardStack ) do za Index: = Low (Karta Stack) na vysoké (Karta stack) do
začít
CardStack [ Index ] <> # 0 ) then if (karta stack [index] <> # 0) pak
; Výsledek: = false;
konec;
konec;

Boolean ; PrepareCards funkce: Logická;
const
= 25 ; Počet karet: bajty = 25;
var
[ 1 ..25 ] of Byte ; Karty: pole [1 .. 25] Byte;
; Hotovo: Logická;
Byte ; Index: Byte;
; Temp: Byte;
začít
; První karta: = 0;
; Turn Počet: = 0;

Low ( Cards ) to High ( Cards ) do za Index: = Low (karet) k High (karty) do
] := 2 ; Karty [Index]: = 2;

Low ( CardStack ) to High ( CardStack ) do za Index: = Low (Karta Stack) na vysoké (Karta stack) do
začít
; Hotovo: = false;
opakovat
( Random ( CardCount ) ) ; Temp: = Succ (Random (Karta hrabě));
Cards [ Temp ] > 0 ) then if (karty [temp]> 0) Then
začít
:= Pred ( Cards [ Temp ] ) ; Karty [temp]: = Pred (karty [temp]);
] := Char ( Pred ( Temp + 65 ) ) ; Karta Stack [index]: = char (Pred (Temp + 65));

; Hotovo: = true;
konec;
do Hotovo;
konec;

; Výsledek: = true;
konec;

CardID : Byte ) : Char ; Turn funkce karty (CardId: Byte): Char;
začít
CardID > = Low ( CardStack ) ) and ( CardID < = High ( CardStack ) ) ) then if ((CardId> = Low (Karta Stack)) a (CardId <= Vysoká (Karta stack))) pak
začít
FirstCard = 0 ) and ( CardStack [ CardID ] <> # 0 ) ) then if ((první karta = 0) a (Karta Stack [CardId] <> # 0)) pak
začít
CardID ] ; Výsledek: = karta Stack [CardId];
( TurnCount ) ; Turn Počet: = Succ (Turn Count);

První karta: = CardId;
konec
jiný
začít
FirstCard <> 0 ) and ( FirstCard <> CardID ) and ( CardStack [ CardID ] <> # 0 ) ) then if ((první karta <> 0) a (první karta <> CardId) a (Karta Stack [CardId] <> # 0)) pak
začít
CardID ] ; Výsledek: = karta Stack [CardId];
( TurnCount ) ; Turn Počet: = Succ (Turn Count);

CardStack [ CardID ] = CardStack [ FirstCard ] ) then if (karta stack [CardId] = karta Stack [první kartu]), pak
začít
'Pair : ' , CardStack [ CardID ] ) ; Writeln ('Pair', karta Stack [CardId]);

:= # 0 ; Karta Stack [CardId]: = # 0;
:= # 0 ; Karta Stack [první kartu]: = # 0;
konec;

; První karta: = 0;
konec
jiný
začít
; Výsledek: = # 0;
konec;
konec;
konec
jiný
; Výsledek: = # 0;
konec;

Integer ; Turn funkce Počítadlo: integer;
začít
Výsledek: = Turn Počet;
konec;

inicializace
Randomize;

konce roku.
1
2
3
4
5:00
6
7
8
9
10
11
12
13
14
15
16
17
18
19:00
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Paměťová jednotka;

rozhraní

Boolean ; Hrát hru funkce: Logická;

provádění

používá
CardGiver;

Boolean ; Hrát hru funkce: Logická;
var
[ 1 ..50 ] of Char ; Karta Stack: pole [1 .. 50] z Char;
Byte ; Index: Byte;
; IndexB: Byte;
začít
1 to 25 do za Index: = 1 25 čt.
začít
( Index * 2 ) ] := TurnCard ( Pred ( Index * 2 ) ) ; Karta Stack [Pred (index * 2)]: = Turn Card (Pred (index * 2));
* 2 ) ] := TurnCard ( ( Index * 2 ) ) ; Karta Stack [(index * 2)]: = Turn karta ((index * 2));

CardStack [ Pred ( Index * 2 ) ] = CardStack [ ( Index * 2 ) ] ) then if (karta stack [Pred (index * 2) = karty Stack [] (index * 2)]), pak
začít
( Index * 2 ) ] := # 0 ; Karta Stack [Pred (index * 2)]: = # 0;
* 2 ) ] := # 0 ; Karta Stack [(index * 2)]: = # 0;
konec;
konec;

1 ; Index: = 1;
opakovat
CardStack [ Index ] <> # 0 ) then if (karta stack [index] <> # 0) pak
začít
Succ ( Index ) to High ( CardStack ) do indexB pro: = Succ (Index) na vysoké (Karta stack) do
začít
CardStack [ Index ] = CardStack [ IndexB ] ) then if (karta stack [index] = karta Stack [indexB]), pak
začít
) ; Turn Card (index);
; Turn Card (indexB);

] := # 0 ; Karta Stack [index]: = # 0;
:= # 0 ; Karta Stack [indexB]: = # 0;

Break;
konec;
konec;
konec;

Succ ( Index ) ; Index: = Succ (index);
Index > High ( CardStack ) ) ; do (index> High (karta Stack));

; Výsledek: = true;
konec;

konce roku.

Protože jsem měl standardní mechanismy Kartenumdreh bohužel musím běžet, mám také tento zas jen implementuje nové (včetně automatického míchání karet a přezkoumání, zda hra je opravdu více). A co můžu říct? Můj nápad byl přesně pravdu - a díky malým optimalizace (je-li podobnou dvojici se nachází v počáteční detekce, je třeba považovat podruhé) je třeba v některých případech dokonce méně než 100 karet změní ... ;-)

Update:
Jan Hendrik Burdinski vyslovil myšlenku, ale ne odkrýt všechny karty jednou, a pak uklidit, odhalil dříve zjištěno, karty s partnery, aby posoudili, že již. Myšlenka se mi to líbilo natolik, že jsem také chtěla zavést:

1
2
3
4
5:00
6
7
8
9
10
11
12
13
14
15
16
17
18
19:00
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
paměťovou jednotku,

rozhraní

Boolean ; Hrát hru funkce: Logická;

provádění

používá
CardGiver;

Boolean ; Hrát hru funkce: Logická;
var
; Carda: Char;
; CardB: Char;
[ 'A' .. 'Z' ] of Byte ; Karta Stack: Array ['A' .. ''] Z z Byte;
Char ; Index: Char;
; IndexB: Byte;
začít
'A' to 'Z' do za Index: = 'A' 'Z' do
] := 0 ; Karta Stack [index]: = 0;

; IndexB: = 1;
IndexB < = 50 ) do while (indexB <= 50) do
začít
IndexB ) ; Carda: = Turn Card (indexB);
CardA <> # 0 ) then // card is valid if (Carda <> # 0) pak / / karta je platná
začít
CardStack [ CardA ] > = 1 ) and ( CardStack [ CardA ] < = 50 ) ) then // card value has been seen before if ((karta Stack [Carda]> = 1) a (Karta Stack [Carda] <= 50)) pak karty / hodnota byla neviděli
začít
/ / Obráceníkarty vyhovující
CardA ] ) ; Turn Card (karta Stack [Carda]);
:= 255 ; Karta Stack [Carda]: = 255;
konec
jiný
začít
CardStack [ CardA ] = 0 ) then // card value has not been seen before if (karta stack [Carda] = 0) pak / / hodnota karta nebyla neviděli
začít
/ / Uložit karta pozice
:= IndexB; Karta Stack [Carda]: = indexB;

/ / Druhý flip karty
( IndexB ) ; IndexB: = Succ (indexB);
IndexB < = 50 ) then if (indexB <= 50) pak
začít
IndexB ) ; CardB: = Turn Card (indexB);

CardA = CardB ) then // 1st and 2nd card are a pair if (Carda = CardB), pak / / 1. a 2. karty je dvojice
:= 255 Karta Stack [CardB]: = 255
jiný
začít
CardStack [ CardB ] > = 1 ) and ( CardStack [ CardB ] < = 50 ) ) then // card value has been seen before if ((karta Stack [CardB]> = 1) a (Karta Stack [CardB] <= 50)) pak / / karta hodnota byla neviděli
začít
/ / Překlopení karty stejné hodnoty
; Turn Card (indexB);
CardB ] ) ; Turn Card (karta Stack [CardB]);
:= 255 ; Karta Stack [CardB]: = 255;
konec
jiný
začít
/ / Uložit karta pozice
:= IndexB; Karta Stack [CardB]: = indexB;
konec;
konec;
konec;
konec;
konec;
konec;

/ / Přesun na další karty
( IndexB ) ; IndexB: = Succ (indexB);
konec;

; Výsledek: = true;
konec;

konce roku.

Wie man sieht, ist die Logik etwas umfangreicher, da nun mehrere Schritte gemacht werden müssen:

  • Die erste Karte wird aufgedeckt.
  • Es wird überprüft, ob das Symbol der ersten Karte schonmal gefunden wurde.
  • Falls ja, wird die Partnerkarte aufgedeckt und von vorne begonnen (ein Pärchen wurd gefunden).
  • Falls nein, wird die Position des Symbols der ersten Karte gespeichert und die zweite Karte aufgedeckt.
  • Es wird überprüft, ob beide Karten identisch sind.
  • Falls ja, wird von vorne begonnen (ein Pärchen wurde gefunden).
  • Falls nein, wird geprüft, ob das Symbol der zweiten Karten schonmal gefunden wurde.
  • Falls ja, wird die zweite Karte (nochmal) und ihre Partnerkarten aufgedeckt und von vorne begonnen (ein Pärchen wurde gefunden).
  • Falls nein, wird die Position des Symbols der zweiten Karte gespeichert und von vorne begonnen.

Der Algorithmus ist meiner Meinung ziemlich performant und benötigt im Schnitt ca. 80 Kartenumdrehungen. Des Best-Case ist, dass die Karten paarweise sortiert sind. Der Worst-Case liegt übrigens dann vor, wenn die Karten so angeordnet sind, dass die Paarfindung immer durch das Umdrehen der zweiten Karte der Runde ausgelöst wird. Also zB in diesem Fall: “AYBACBDCEDFEGFHGIHJIKJLKMLNMONPOQPRQSRTSUTVUWVXWYX”

Spielerische Grüße, Kenny

| ÄHNLICHE ARTIKEL 23.srpna 2010 ~ 31 Komentáře | Související články

Win T-shirt!


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Soutěže je již dokončen!

Byl jsem majitel obchodu tady v mém rodném městě Berlíně napsal a zeptal se, jestli mám několik T-košile s lidmi, které nechcete, aby. Pak jsem našel nápad skvělý, stejně jako košile-Self-Bedrucken.de a pozvu vás k Blogger Soutěž! : D

Můžete vyhrát:

Účast je velmi jednoduchá:

  • Napsat článek o soutěži
  • Odkaz na stránku s vlastní-shirt Bedrucken.de (odkaz na text záležitost nofollow povoleno)
  • Poslat trackback na tento post-soutěže
  • Prvních 15 lidí, kteří se podíleli si T-shirt! : D

By měl být schopen poslat své č. trackback, můžete odkaz na váš článek vlevo dole v komentářích. Vítězem je stanovena v časové razítko Zpětné odkazy / komentář zde na blogu. Toto rozhodnutí je konečné. Soutěž končí v neděli, 29/08/2010, 12:00 do poledne bodu.

Mezi těmi, kteří se zúčastnili v soutěži až do konce, dvě poukázky na 20 € do tomboly samostatně. Zisku z školství Random.org .

Co jste od účasti?

  • Prvních 15 účastníků obdrží zdarma T-Shirt : D !
  • Všichni účastníci obdrží dofollow odkaz zpět!
  • Všichni účastníci mají šanci na tomboly dva 20-sebe-Shirt € poukaz nákupní Bedrucken.de!

Co vítězové dostat svůj zisk, Nyní vás prohlašuji příští neděli v samostatném článku. :-)

Bavte se soutěže! : D

| ÄHNLICHE ARTIKEL 23.srpna 2010 ~ 5 Comments | Související články

sp! k II: operace


Diesen Artikel drucken Vytisknout tento článek
Přečtěte si tento článek Přečtěte si tento článek

Poté, co v poslední době myšlenku sp! k podali, jsem chtěl vysvětlit, aby vás týdny, měl jsem přišel na to teorie do praxe. Jeden by měl vědět, že by měl být zbit s realizací několika mouchy jednou ranou:

  • Mělo by být možné na vlastní SP! K-Server běží, ale práce stále ostatních uživatelů na tomto serveru.
  • Mělo by být možné pro všechny hlavní písemné formy komunikace s sp kryt! K.
  • Producenty ve obsah by měl vždy mít kontrolu nad svým vlastním obsahem.
  • Spam by měly být pokud možno předejít.

Začněme s popisem řešení v kořenovém adresáři - Konverzace (angličtina pro "jednání"). Všechny diskuse jsou tak-zvané konverzace témata do - tyto tvoří výchozí bod a libovolný počet příloh (takzvaný kapitole [Engl. Pro "kapitola"]). Přílohy jsou samy o sobě opět konverzační pramenů, které mohou obsahovat přílohy.

Vezměme si například fórum: V tomto fóru se mohou členové "vytvořit vlákno" - to jsou témata, které mají být projednány. Závit je vždy alespoň z výchozí místo a odpovědi na téma účastníků. V závislosti na nástěnce mohou být buď odpovědět pouze na odchozí pošty (všechny odpovědi jsou automaticky řazeny v čase), nebo můžete odpovědět na odpověď z jiného vlákna účastníka. To je přesně v SP! K prostřednictvím rozhovorů, a kapitola je to možné.
Ale nejen tam, jsou možné. Dobrým příkladem je e-mail konverzace: Existují různé pokusy mapa konverzace závity - použití předmětu, pomocí adresy příjemců pomocí dodatečné informace v hlavičce ... na sp! K je "E-konference" jen konverzaci ("Počáteční Email") a libovolný počet kapitol (reakce).
V chatovací místnosti, je to opět stejné jako: Někdo otevřel první zprávy o prostor (rozhovor) a všechny ostatní mohou vkládat nové příspěvky v tomto prostoru.
Ti, kdo si myslel, spolu teď, vím, že je na webových stránkách samozřejmě, stejný proces: obsah (např. "časopis") plus jakýkoliv počet komentářů ... to je vždy stejný obraz. :-)

Taková konverzace (a tedy i kapitola) se vyznačují několik speciálních funkcí. Pro tu je jedna pro každou konverzaci druh Access List Kontrola se může určit, kdo inicioval rozhovor si musí přečíst a kdo v ostatních kapitolách se mohou přidat konverzaci. Tento mechanismus je rozdíl mezi veřejným a soukromým obsahem, je obsah získat: "e-mail", má tedy velmi těžké ACL, během veřejného "web má rozsáhlé ACL. :-)

Kromě toho musí mít konverzace druh trvanlivost - v závislosti na úkolu, (e-mail, webové stránky nebo chat), musí být obsah, který je platný lišit. Stability rozpětí začíná "navždy" a končí ", zpráva byla načtena nahoru.

Dalším bodem by bylo trochu překvapující: Veškerý obsah, který produkuje někdo zůstat v paměti této osoby. Nezáleží na tom, zda je webová stránka, forum post, rychlou zprávu nebo dokument je e-mail. Neexistuje žádný obsah, který je duplicitní někde jinde, nebo bude líbit.
Tím je zajištěno, že každá sp! Může určit, k uživatelé kdykoliv, které z jeho obsahu lze přistupovat a kdo tyto budou zveřejněny. Pěkný vedlejší efekt je, že spam je, že (snad) účinně zabránit. Důvodem je to, že obchod Spamer každý spamu ve svém vlastním prostoru potřeb. Proto by, pokud je zpráva zjištěno, že je spam, vyhloubí to něco jako blacklist varovat další příjemci této zprávy před.

Nyní je ten druhý, nebo určitě na otázku: "Je-li odesílateli zprávy, aby zůstala v, jak potom příjemce ví, že bude číst?"

Stačí použít takzvaný volání (v angličtině pro "hovory"). Pokud se nový dokument, který bude zveřejněn (nebo osoby), je určena k jednomu, hovor je odeslána příjemcům, kteří upozorní, "tady je novou zprávu, máte přístup." Kromě těchto výzev pro soukromé obsah lze také objednat na výzvy veřejného obsahu - tak, že taková bude informován o nových blogu.

Vzhledem k tomu, veřejné obsah není obvykle distribuována prostřednictvím výzvy, jsou tam dva tyto katalogy (angličtina pro "katalogy"), v níž všechny veřejné obsah indexovány. V katalogu pro místní Konverzace je určena (rozhovory, které se mohou číst pouze členové jejich vlastní server) a katalog pro globální rozhovory (to je, Konverzace, které mohou být čteny členy jiných serverů).

A tady jsme už mluvili o posledním tématem dnes: jiný server. Představoval jsem si, sp! K jako směs mezi centralizovanou a decentralizovanou síť. Existuje několik důvodů: pravděpodobně bude uživatelům, kteří preferují provozovat vlastní server, aby se svěřit jejich poskytovatelů dat nebyly. Jiní mají pravděpodobně vůbec technologie a znalosti provozovat server - který se pak spoléhat na volné nebo placené služby. Samozřejmě, že by se ještě všichni máme schopnost komunikovat mezi sebou navzájem, pokud chtějí.

Za účelem usnadnění přístupu k obsahu jiném serveru, jsem si myslel, že by bylo nejjednodušší, musí být přiděleno jedinečné jméno pro každou konverzaci. Struktura URL jsem prezentoval na mě jako:

spiik: / / username @ host: port / konverzace

Pokud takové URL nyní ukazuje na cizí hostitele, je vlastní server pro připojení k vzdálenému serveru, zajistit totožnost a následně načítat obsah a předá je pro uživatele. Jak by měl celý běh bezpečnosti, prohlašuji vám příště ... ;-)

Konverzace Zdravím, Kenny

189
no-www.org extra-www.org

Databáze: 59 dotazů během několika sekund 0.9190.919