- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
<?php
error_reporting(0);
ini_set('display_errors', '0');
mb_internal_encoding('UTF-8');
header('Access-Control-Allow-Origin: *');
header('Content-Type: text/html; charset=utf-8');
$string=mb_strtolower(trim($_REQUEST['q']));
$string=str_replace('#', 'sharp', $string);
$string=str_replace('++', 'plusplus', $string);
preg_match_all('/(\w+)/u', str_replace('_', '', $string), $matches);
$words=$matches[1];
$bad=array();
$good=array();
foreach($words as $word){
if(mb_strpos($word, 'java')!==false || mb_strpos($word, 'джав')!==false || mb_strpos($word, 'ява')!==false){
if(mb_strpos($word, 'script')===false && mb_strpos($word, 'скрипт')===false){
$bad[]='Java';
}
}
if(mb_strpos($word, 'python')!==false || mb_strpos($word, 'питон')!==false || mb_strpos($word, 'пайтон')!==false){
$bad[]='Python';
}
if(mb_strpos($word, 'perl')!==false || mb_strpos($word, 'перл')!==false || mb_strpos($word, 'пёрл')!==false){
$bad[]='Perl';
}
if(mb_strpos($word, 'cplusplus')!==false || mb_strpos($word, 'сplusplus')!==false || mb_strpos($word, 'cpp')!==false){
$bad[]='C++';
}
if(mb_strpos($word, 'csharp')!==false || mb_strpos($word, 'сsharp')!==false || mb_strpos($word, 'сишарп')!==false || mb_strpos($word, 'сшарп')!==false){
$bad[]='C#';
}
if($word=='c' || $word=='си' || $word=='сях'){
$bad[]='C';
}
if(mb_strpos($word, 'haskel')!==false || mb_strpos($word, 'хаскел')!==false){
$bad[]='Haskell';
}
if(mb_strpos($word, 'pascal')!==false || mb_strpos($word, 'паскал')!==false){
$bad[]='Pascal';
}
if(mb_strpos($word, 'delphi')!==false || mb_strpos($word, 'delfi')!==false || mb_strpos($word, 'делф')!==false || mb_strpos($word, 'дельф')!==false){
$bad[]='Delphi';
}
if(mb_strpos($word, 'assembler')!==false || mb_strpos($word, 'asm')!==false || mb_strpos($word, 'ассемблер')!==false || mb_strpos($word, 'асм')!==false){
$bad[]='Assembler';
}
if(mb_strpos($word, 'ruby')!==false || $word=='руби' || mb_strpos($word, 'рубист')!==false || mb_strpos($word, 'рубях')!==false){
$bad[]='Ruby';
}
if(mb_strpos($word, '1c')!==false || mb_strpos($word, '1с')!==false || mb_strpos($word, '1ц')!==false){
$bad[]='1C';
}
if(mb_strpos($word, 'dart')!==false || mb_strpos($word, 'дарт')!==false){
$bad[]='Dart';
}
if(mb_strpos($word, 'linux')!==false || mb_strpos($word, 'линукс')!==false || mb_strpos($word, 'линух')!==false || mb_strpos($word, 'ubunt')!==false || mb_strpos($word, 'убунт')!==false || mb_strpos($word, 'debian')!==false || mb_strpos($word, 'дебиан')!==false || mb_strpos($word, 'freebsd')!==false || mb_strpos($word, 'фрибсд')!==false){
$bad[]='Linux';
}
if(mb_strpos($word, 'unix')!==false || mb_strpos($word, 'nix')!==false || mb_strpos($word, 'юникс')!==false || mb_strpos($word, 'юних')!==false){
$bad[]='Unix';
}
if(mb_strpos($word, 'jvm')!==false || mb_strpos($word, 'жвм')!==false){
$bad[]='JVM';
}
if(mb_strpos($word, 'jsharp')!==false){
$bad[]='J#';
}
if(mb_strpos($word, 'jplusplus')!==false){
$bad[]='J++';
}
if(mb_strpos($word, 'git')!==false || mb_strpos($word, 'гит')!==false){
if(mb_strpos($word, 'hub')===false && mb_strpos($word, 'хаб')===false && mb_strpos($word, 'lab')===false && mb_strpos($word, 'лаб')===false){
$bad[]='Git';
}
}
if(mb_strpos($word, 'svn')!==false || mb_strpos($word, 'свн')!==false){
$bad[]='SVN';
}
if(mb_strpos($word, 'postgres')!==false || mb_strpos($word, 'постгр')!==false || mb_strpos($word, 'pg_')!==false){
$bad[]='PostgreSQL';
}
if(mb_strpos($word, 'composer')!==false || mb_strpos($word, 'композер')!==false){
$bad[]='Composer';
}
if(mb_strpos($word, 'bower')!==false || mb_strpos($word, 'бовер')!==false || mb_strpos($word, 'бауэр')!==false || mb_strpos($word, 'боуэр')!==false){
$bad[]='Bower';
}
if(mb_strpos($word, 'node')!==false || mb_strpos($word, 'ноде')!==false || mb_strpos($word, 'нода')!==false){
$bad[]='NodeJS';
}
if(mb_strpos($word, 'php')!==false || mb_strpos($word, 'пхп')!==false || mb_strpos($word, 'пых')!==false || mb_strpos($word, 'пэхапэ')!==false || mb_strpos($word, 'похапэ')!==false || mb_strpos($word, 'пехапе')!==false || mb_strpos($word, 'похапе')!==false || mb_strpos($word, 'эйч')!==false || mb_strpos($word, 'пшп')!==false){
$good[]='PHP';
}
if(mb_strpos($word, 'mysql')!==false || mb_strpos($word, 'мускул')!==false || mb_strpos($word, 'майскул')!==false){
$good[]='MySQL';
}
if(mb_strpos($word, 'windows')!==false || mb_strpos($word, 'виндовс')!==false || mb_strpos($word, 'шинд')!==false || mb_strpos($word, 'винд')!==false){
$good[]='Windows';
}
}
HighVoltageDick 06.08.2018 05:09 # 0
roskomgovno 06.08.2018 05:10 # −1
HighVoltageDick 06.08.2018 05:10 # 0
Факт.
Отправлено с помощью "PHP".
roskomgovno 06.08.2018 05:11 # 0
HighVoltageDick 06.08.2018 05:11 # 0
Факт.
Отправлено с помощью "PHP".
roskomgovno 06.08.2018 05:11 # 0
HighVoltageDick 06.08.2018 05:11 # 0
Факт.
Отправлено с помощью "PHP".
roskomgovno 06.08.2018 05:12 # 0
HighVoltageDick 06.08.2018 05:12 # 0
Факт.
Отправлено с помощью "PHP".
roskomgovno 06.08.2018 05:12 # 0
не дрожи шалава(С)
HighVoltageDick 06.08.2018 05:13 # 0
Факт.
Отправлено с помощью "PHP".
guest8 06.08.2018 05:28 # −999
HighVoltageDick 06.08.2018 05:29 # 0
guest8 06.08.2018 08:15 # −999
gost 06.08.2018 05:38 # 0
HighVoltageDick 06.08.2018 05:38 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 05:40 # 0
HighVoltageDick 06.08.2018 05:40 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 05:50 # +1
HighVoltageDick 06.08.2018 05:50 # 0
Факт.
Отправлено с помощью "PHP".
guest8 06.08.2018 14:02 # −999
gost 06.08.2018 05:52 # 0
HighVoltageDick 06.08.2018 05:55 # 0
gost 06.08.2018 06:02 # 0
HighVoltageDick 06.08.2018 06:02 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 06:03 # 0
HighVoltageDick 06.08.2018 06:03 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 06:03 # 0
HighVoltageDick 06.08.2018 06:03 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 06:04 # 0
HighVoltageDick 06.08.2018 06:04 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 06:04 # 0
HighVoltageDick 06.08.2018 06:04 # 0
Факт.
Отправлено с помощью "PHP".
gost 06.08.2018 06:04 # 0
bar-u-xoloda 06.08.2018 10:48 # 0
guest8 06.08.2018 12:59 # −999
666_N33D135 06.08.2018 15:26 # +1
gost 06.08.2018 06:07 # +1
Так это же пиздёж, получается. Это сгенерировано оно с помощью "PHP", а вот отправлено - очень даже с помощью "Javascript".
guest8 06.08.2018 10:40 # −999
bar-u-xoloda 06.08.2018 10:47 # 0
guest8 06.08.2018 13:00 # −999
666_N33D135 06.08.2018 16:43 # +1
roskomgovno 06.08.2018 16:50 # 0
666_N33D135 06.08.2018 16:57 # 0
roskomgovno 06.08.2018 17:00 # 0
ахахахаххаха
guest8 06.08.2018 17:20 # −999
guest8 06.08.2018 17:25 # −999
guest8 06.08.2018 22:39 # −999
roskomgovno 06.08.2018 22:42 # 0
никогда
неужели не понятно?
guest8 06.08.2018 23:10 # −999
guest8 06.08.2018 20:53 # −999
guest8 06.08.2018 19:34 # −999
guest8 06.08.2018 18:37 # −999
roskomgovno 06.08.2018 18:38 # +1
guest8 06.08.2018 18:40 # −999
guest8 06.08.2018 18:44 # −999
guest8 06.08.2018 18:59 # −999
666_N33D135 08.08.2018 18:10 # 0
666_N33D135 06.08.2018 18:41 # +1
bormand 06.08.2018 18:48 # 0
666_N33D135 06.08.2018 19:00 # 0
guest8 06.08.2018 19:18 # −999
666_N33D135 06.08.2018 19:38 # +1
guest8 06.08.2018 19:41 # −999
666_N33D135 06.08.2018 19:42 # 0
roman-kashitsyn 06.08.2018 13:38 # 0
Elvenfighter 06.08.2018 14:26 # +1
Steve_Brown 06.08.2018 15:18 # +2
gost 06.08.2018 21:17 # 0
А это такая операция "push_back"?
guest8 06.08.2018 21:21 # −999
3oJIoTou_xyu 07.08.2018 14:26 # 0
roskomgovno 07.08.2018 17:06 # 0
3oJIoTou_xyu 08.08.2018 12:48 # 0
guest8 08.08.2018 13:13 # −999
roskomgovno 08.08.2018 16:12 # 0
666_N33D135 08.08.2018 16:36 # 0
roskomgovno 08.08.2018 16:47 # 0
Напомни пожалуйста как там поменять индексацию? директивой копелятора?
666_N33D135 08.08.2018 16:54 # 0
roskomgovno 08.08.2018 16:56 # 0
значит, по умолчанию она там была с единицы
А еще так в VB(S), кажется.
В Lua вообще индексация штука забавная: там таблица может быть и массивом и словарем/мапой/хешем и объктом одновременно
guest8 08.08.2018 17:04 # −999
666_N33D135 08.08.2018 17:07 # 0
Любой перечислимый тип, "42..100" – тип диапазон, его тоже можно юзать, можно даже [byte] – эквивалентно [0..255], или даже [word] (помню что в TP это не работало, потому что макс рпзмер массива был чуть поменьше размера сегмента). В динамических массивах (array of integer) индексация с 0.
> В Lua
Там же всё таблы? Как реализовано? Всё – хэш-таблицы, независимо от того массив ли это, словарь, объект и пр.?
roskomgovno 08.08.2018 17:12 # 0
guest8 08.08.2018 17:07 # −999
guest8 08.08.2018 16:58 # −999
666_N33D135 08.08.2018 17:16 # 0
roskomgovno 08.08.2018 17:17 # 0
666_N33D135 08.08.2018 17:19 # 0
guest8 08.08.2018 17:27 # −999
666_N33D135 08.08.2018 17:40 # 0
roskomgovno 08.08.2018 17:47 # 0
spam = ['eggs', 'bar']
print (len(spam)) # 2
ренджей (как в руби и перле) как таковых нет
666_N33D135 08.08.2018 18:07 # 0
Да скорее мутабельный кортеж
roskomgovno 08.08.2018 18:18 # +1
name = ("ivan", "pupkin")[0] #ok
for foo in ("ivan", "pupkin") # не ok
name = ["ivan", "pupkin"][0] #не ok
for user in ["roskomo", "needless"]# ok
но это тонкие материи оче
666_N33D135 08.08.2018 18:22 # 0
Ниразу
roskomgovno 08.08.2018 18:28 # +1
guest8 08.08.2018 18:28 # −999
roskomgovno 08.08.2018 18:42 # +1
guest8 08.08.2018 18:44 # −999
roskomgovno 08.08.2018 18:47 # 0
(сам так же апвотнутый коммент к ответу)
Но большинству программистов на семантику срать, они и слов-то таких не знают. Знают только что они ридонли, а другой нет. И так их и используют. Sad, but true
roman-kashitsyn 08.08.2018 18:47 # +1
Вот и я о том же, и они правы. Язык не энфорсит твоих красивых идей, поэтому можно делать что хочется.
В нормальных языках со статической типизацией это энфорсится, и твои рассуждения в них имели бы смысл.
roskomgovno 08.08.2018 19:12 # 0
Ничто не мешает тебе обращаться к непубличными символам, например:
Но так делать плохо, правда?
Так же и тут: правила есть, но за ними никто не следит
guest8 08.08.2018 19:46 # −999
roman-kashitsyn 08.08.2018 20:04 # 0
real_escape_string 08.08.2018 20:07 # 0
roman-kashitsyn 08.08.2018 20:23 # 0
Не знаю по поводу первой, но уже лет 15 можно. К примеру, статья [1] последний раз обновлялась в 2008 году
roskomgovno 08.08.2018 22:27 # 0
pituh = ("kurochka",) везде
Потом я увидел
ptushki = ("kurochka", "tsyplenochek"), и говорю: почему не ["kurochka", "tsyplenochek"] ?
А мне: "ну чтобы не изменить случайно". Тут-то я и понял что немного PHP есть в каждом питоне
666_N33D135 09.08.2018 19:06 # 0
> for foo in ("ivan", "pupkin") # не ok
Что "не ok"? Итерироваться по кортежу, потому что элементы могут быть разного типа? Так проверяй тип, если не уверен что этот кортеж гомогенный. Со списком та же хуйня.
> name = ["ivan", "pupkin"][0] #не ok
Тут что "не ok"? И почему можно с кортежом? Ты уверен, что если функция возвращает кортеж, что он ненулевой длины?
roman-kashitsyn 09.08.2018 19:08 # +1
roskomgovno 09.08.2018 19:20 # 0
я тебе ссылку дал сверху, поди почитай до просветления
И тут еще
[quote]
Though tuples may seem similar to lists, they are often used in different situations and for different purposes. Tuples are immutable, and usually contain a heterogeneous sequence of elements that are accessed via unpacking (see later in this section) or indexing (or even by attribute in the case of namedtuples). Lists are mutable, and their elements are usually homogeneous and are accessed by iterating over the list.
[/quote]
https://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences
666_N33D135 09.08.2018 20:06 # 0
roskomgovno 09.08.2018 20:31 # 0
Кортеж, как и было сказано выше, это аналог структуры, однако вместо имен полей там положения. Семантика лежащих в нем объектов однозначно определена их положением.
Например следующий кортеж указывает на точку в двумерном пространстве: (22, 34).
Тут 22 это координата по оси X, а 34 по Y. Не смотря на то, что это два числа, у них разный смысл (та сама ситуция, когда тип один, а семантика разная)
Если это понять, то становится так же понятно почему не имеет смысла добавлять что-то в кортеж: он (как структура) имеет изначально известное количество мест, и за каждым закреплен какой-то смысл.
А вот в стек, очередь и вектор добавлять можно.
Разумеется, можно использовать туплу как "рид-онли-лист" пытаясь с ее помощью компенсировать отсутствие его в питоне, но это использование не по назначению (см утюг), да к тому же зачем искуственно тащить в язык "неизменяемый" объект, если его там нет изначально? не лучше тогда сразу взять язык с ридонли листом?
Вот если бы у питона вместо туплы были сразу же структуры (привет, руби) то насколько легче было бы жить
guest8 09.08.2018 20:49 # −999
roskomgovno 09.08.2018 20:50 # 0
Про остальное то что думаешь?
Мне правда интересно, кто-то кроме меня, Supamee и Izkata читал "datastructures.html", или все правда думают что кортеж это ридонли лист?
roman-kashitsyn 09.08.2018 23:44 # 0
Честно говоря, ты люто задрал своей «семантикой». Семантика задаётся либо рефересной имплементацией, либо спекой.
Если в спеке написано "так делать низя" или спеки нет и референсная реализация этого не позволяет, вот это значит, что так делать низя.
Давай откроем референс бидона. Спека нигде никаких семантик не упоминает, кроме иммутабельности никаких отличий от списка не упоминается. Референсная реализация CPython, как ты понимаешь, тоже никаких дополнительных ограничений не налагает.
Более того, есть куча примеров, когда тюплы используются в спеке просто как иммутабельные списки, вот например
__bases__ is a tuple containing the base classes, in the order of their occurrence in the base class list
guest8 09.08.2018 23:48 # −999
roskomgovno 09.08.2018 23:51 # 0
20_BLACK_CENTIMETERS 09.08.2018 23:49 # 0
roskomgovno 09.08.2018 23:50 # 0
Полистай на две строчки вверх, или давай я тебе скопирую:
[quote]
Though tuples may seem similar to lists, they are often used in different situations and for different purposes. Tuples are immutable, and usually contain a heterogeneous sequence of elements that are accessed via unpacking (see later in this section) or indexing (or even by attribute in the case of namedtuples). Lists are mutable, and their elements are usually homogeneous and are accessed by iterating over the list.
[/quote]
https://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences
roman-kashitsyn 09.08.2018 23:56 # 0
Если в вашем влажном воображении как-то по-другому, это ваши проблемы, обратитесь к специалисту.
roskomgovno 09.08.2018 23:58 # 0
guest8 10.08.2018 00:02 # −999
roman-kashitsyn 10.08.2018 00:09 # 0
Именно. Почему меня должен волновать туториал? Ты ещё скажи, что меня должно беспокоить, что написано в туториале по C++ на сайте cplusplus.com.
> they are often used in different situations and for different purposes.
> usually contain
Никакой конкретики, никаких референсов. Тот, кто писал туториал, предпочитает такую интерпретацию, это его право. Совершенно непонятно, почему чьё-то икспертное мнение побуждает тебя бегать по форумам и доказывать, что все вокруг неправы.
читани спекца.
roskomgovno 10.08.2018 00:20 # 0
Приведенный тобою референс отписывает техническую реализацию, а в туториале на python.org описывается как этим пользоваться.
В питоне ничего практически не форсится интерпретатором, но есть правила использования и обычно им следуют. Например, начинающиеся с подчеркивания символы не публичны (хотя никто не мешает к ним обращаться). Например, тупла это не "рид онли лист", хотя никто не мешает его так использовать.
В других языках тоже можно "обмануть" компилятор.
В сях можно скастить указатель на структуру с char полями в указатель на массив чаров и интерироваться по нему. Следуя твоей логике "структура в сях это массив" (привет, царь!) потому что это работает.
В HTML/CSS можно навесить background на таг strong, сделать его блочным, квадратным, и использовать в качестве кнопки.
Однако семантика у него "выделять важную часть текста", даже не смотря на то, что ее можно легко переопределить.
В джаве можно дергать рефреклисей приватные методы, и сделать вывод что контроля видимости в джаве нет, потому что ну вот же: работает!
Если что-то "просто работает" и идет в разрез с докой на основном сайте, то это хак.
roman-kashitsyn 10.08.2018 00:25 # 0
Следуя моей логике этого делать нельзя, поскольку по стандарту такой код содержит Undefined Behavior.
> В джаве можно дергать рефреклисей приватные методы, и сделать вывод что контроля видимости в джаве нет, потому что ну вот же: работает!
Ты не поверишь, но фреймворки зачастую именно это и делают! При правильном использовании это полезно, и спека этого не запрещает.
> сделать вывод что контроля видимости в джаве нет
Есть, если выставить правильный секьюрити менеджер через setSecurityManager.
roskomgovno 10.08.2018 00:30 # 0
Почему? Если структура явно выровнена то почему нельзя кастить ее в array?
Как же кастят в структуру пришедшие из аппаратуры или по сети данные, если известно что это массив N байт с определенными значениями?
>> но фреймворки зачастую именно это и делают
Я в курсе, спасибо, однако речь была о том, что если в джаве можно рефлексией залезть куда угодно, то это не значит что в джаве нет контроля доступа.
Если в питоне можно туплой заменить лист, это не значит что тупла и лист это одно и тоже.
roman-kashitsyn 10.08.2018 00:45 # 0
Разумеется это не одно и тоже. Тюпл иммутабельный вообще-то, а список — нет.
roskomgovno 10.08.2018 00:52 # 0
Понятно. В джаве нету контроля видимости, пока не выставлен SecurityManager
Вы все цари
bar-u-xoloda 10.08.2018 00:59 # 0
guest8 10.08.2018 00:03 # −999
roskomgovno 10.08.2018 00:05 # 0
Значит
info = ("You", 81)
name, iq = info # это называется unpacking
guest8 10.08.2018 00:10 # −999
20_BLACK_CENTIMETERS 10.08.2018 00:17 # 0
666_N33D135 09.08.2018 21:18 # 0
roskomgovno 09.08.2018 21:21 # 0
2) нет
3) нет
guest8 09.08.2018 20:29 # −999
real_escape_string 08.08.2018 22:00 # 0
1024-- 08.08.2018 22:12 # 0
real_escape_string 08.08.2018 22:20 # 0
real_escape_string 08.08.2018 22:23 # 0
1024-- 08.08.2018 22:50 # 0
bar-u-xoloda 08.08.2018 23:00 # 0
1024-- 08.08.2018 23:07 # 0
bar-u-xoloda 09.08.2018 00:42 # 0
Invalid memory access
То есть, ты осознаёшь всю незаконность сего деяния и готов взять грех на душу?
roskomgovno 09.08.2018 00:43 # 0
bar-u-xoloda 09.08.2018 00:44 # 0
Я Бар у Холода.
guest8 09.08.2018 01:21 # −999
roskomgovno 09.08.2018 01:24 # 0
1024-- 09.08.2018 01:10 # 0
Если несколько человек соберёт из аватарок слово "вечность", где каждая буква будет нарисована в свободном редакторе лично пользователем, ничего незаконного не будет.
bar-u-xoloda 09.08.2018 21:26 # 0
guest8 08.08.2018 17:21 # −999
guest8 08.08.2018 17:02 # −999
shite 07.08.2018 19:50 # 0
roskomgovno 08.08.2018 04:01 # 0
https://bit.ly/2M6Flue
guest8 08.08.2018 04:07 # −999
roskomgovno 08.08.2018 04:11 # 0
guest8 08.08.2018 11:06 # −999
guest8 08.08.2018 09:51 # −999
shite 01.09.2018 12:34 # 0
shite 01.09.2018 12:34 # 0
shite 01.09.2018 12:34 # 0
shite 01.09.2018 12:38 # 0
Факт.
Отправлено с помощью "JavaScript".