Stackoverflow top secret что это
Перейти к содержимому

Stackoverflow top secret что это

  • автор:

Авторизация через Facebook на PHP. Возникает ошибка при обработке ответа от фейсбука

У меня возникает ошибка при обработке ответа от Facebook. Ошибка возникает в токене. А что именно не так-непонятно. Сформированная ссылка на вход есть в index.php, и выглядит так:

Данные приложения есть в config.php, и выглядят так:

Обработка ответа от Facebook есть в create.php, и выглядит так:

'; if(!$_GET['code']) < exit('error code'); >//var_dump($_GET['state']); include 'config.php'; $token=json_decode(file_get_contents('https://graph.facebook.com/v15.0/oauth/access_token?client_id='.ID.'&redirect_uri='.URL.'&client_secret='.SECRET.'&code='.$_GET['code']),true ); if (!$token) < exit('error token'); >$data=json_decode(file_get_contents('https://graph.facebook.com/oauth/me?client_id='.ID.'&redirect_uri='.URL.'&client_secret='.SECRET.'&code='.$_GET['code'].'&access_token='.$token['access_token'].'&fields=id,email'),true ); if (!$data) < exit('error data'); >var_dump($data); ?> 

Ошибка — error token Скриншот директории файлов прикладываювведите сюда описание изображения Видео прикладываю http://somup.com/c3QFlNUA8c Веб-сайт https://www.lvl3.top/ Пользовался данным видео при создании кода: https://www.youtube.com/watch?v=FQFEiEF21vY Фото настроек приложения в Facebook прилагаю введите сюда описание изображения

Aww, snap! We’ve got Filters now [closed]

The problem described here can no longer be reproduced. Changes to the system or to the circumstances affecting the asker have rendered it obsolete. If you encounter a similar problem, please post a new question.

Closed last year .

Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.

How do you do, fellow Stackers? If there’s anything that Stack Overflow is known for, it’s being hip to the latest trends in every field. Gaming? We created StackEgg. Security? We invented Dance Dance Authentication. Self-guided problem solving? Quack Overflow was there for you. Programming? The Key is all you need. “But all that’s in the past,” you say, “That’s, like, a century ago in Internet years.” Don’t worry – we’re never gonna give you up or let you down as influencers. (Wait for it. ) Today, we’re excited to announce our totally sweet new endeavor: Filters for Stack Overflow. (You know that’s right.) We’ve got a variety of stylin’ designs for you to choose from, ranging from some classic looks all the way to the next dimension. When you see our Terminal filter, we know you’ll say «. I’m in.» If you’re looking at classified information on Stack Overflow, make sure you’re using the Top Secret design so others know how confidential it is. And if you’re a fan of delicious flavor, feed your craving with our Hot Dog Stand theme. Other apps might have filters that make you look old – but we have filters that make you feel old. I know what you’re thinking now: “Word?! Where can I check out this epic new feature?” Just go to Stack Overflow and peep the new Filters bar at the bottom of the screen – and let all our different designs rock your world. (If you want to yeet our new Filters out of your sight, you can do that, too; our regular theme is the GOAT.) Stack it your way, and feel free to show off your Filters in an answer below! Hey, other social media sites? You just lost the game.

Как находить кандидатов на Stack Overflow

Мы поговорили про сорсинг на Stack Overflow с Русланом Сарваровым из компании Evrone.

Руслан рассказал, чем Q&A-сервис для разработчиков полезен рекрутерам, как вести внутренний и внешний поиск кандидатов, а также объяснил, как составлять SQL-запросы к базе данных пользователей, если не знаешь SQL.

Руслан Сарваров, Recruitment Lead в Evrone, автор канала SR4HR

Что такое Stack Overflow и кого там искать

Stack Overflow — это Q&A-сервис для айтишников, где одни люди задают вопросы, а другие отвечают. По сути, это огромная база знаний, с помощью которой IT-специалисты решают свои боевые задачи.

Аудитория сайта насчитывает свыше 100 миллионов человек со всего мира. Среди пользователей не только разработчики, а все, кто пишет код, в том числе ML-инженеры и автотестировщики.

Особенности сервиса

Легче оценить экспертность кандидата

Если зайти в профиль пользователя на GitHub, то можно посмотреть написанный им код и понять, какие языки программирования он знает. Но зачастую рекрутеры недостаточно глубоко разбираются в коде — им сложно определить, чем конкретно занимается кандидат и в чем он эксперт.

Эту задачу легче решить на Stack Overflow: здесь можно почитать ветки по вопросам, в обсуждениях которых участвует пользователь. Это позволяет более детально проанализировать его опыт, понять интересы и проблемы.

Сложно искать информацию о кандидате

В целом это сервис, где айтишники могут обмениваться знаниями и опытом, не подвергаясь атакам рекрутеров. Именно поэтому внутренний поиск Stack Overflow ориентирован на сбор информации по конкретным темам, а не на сканирование профилей пользователей. К счастью, эти ограничения можно обойти — еще расскажу как.

Еще недавно на Stack Overflow были инструменты для работодателей:

  • Jobs — можно было публиковать вакансии, разбирать отклики и писать кандидатам;
  • Salary Calculator — калькулятор зарплат и аналитика вилок по каждому стеку технологий;
  • Developer Story — резюме в профиле пользователя.

Ни один из этих продуктов больше не работает: создатели Stack Overflow решили, что не стоит превращать сервис в очередной джоб-сайт.

Stack Overflow — не основной, а дополнительный канал поиска

У вас не получится отправить пользователю личное сообщение внутри сервиса: такой функции нет. Скорее всего, вы не сможете понять, открыт ли кандидат к предложениям — если только он сам не напишет об этом в профиле.

Типичный сценарий использования сервиса: нашли кандидата на LinkedIn или GitHub, а потом перешли в его аккаунт на Stack Overflow, чтобы оценить опыт и понять, за что стоит зацепиться на интервью. Или наоборот: встретили подходящего специалиста на Stack Overflow, а потом нашли его аккаунты в других соцсетях и платформах.

X-ray-поиск по Developer Story

Раньше внутри профиля пользователя был специальный раздел Developer Story. Он выглядел как полноценное резюме с контактными данными и информацией о предыдущих местах работы и образовании:

Сейчас все эти страницы недоступны, но благодаря кэшу гугла их можно просматривать. Например, найдем резюме golang-разработчиков, которые в своих навыках указали Kubernetes. Запрос будет таким:

site:stackoverflow.com/cv (“golang * “|“go * “) “kubernetes“

Раньше Developer Story (резюме) хранились по адресу stackoverflow.com/cv. А с помощью символа * мы сообщаем гуглу о том, что после ключевого слова может идти какой угодно текст.

В результате мы получаем поисковую выдачу. Но при попытке перейти по любой ссылке система сообщает, что Page not found. К счастью, все удаленные страницы еще хранятся в памяти гугла: чтобы открыть страницу, нажмите на значок с треугольником и кликните по ссылке «Сохраненная копия»:

В основном таким Х-ray-запросом я находил резюме разработчиков уровня «сениор» и выше — с опытом от 3 до 5 лет в определенном стеке. Реже встречаются джуны и мидлы.

Чтобы сохранить поисковую выдачу, советую использовать расширение Instant Data Scrapper. Оно сформирует таблицу, где будут ссылки на кэшированные страницы:

X-ray-поиск по профилям пользователей

Профили всех пользователей хранятся по адресу stackoverflow.com/users. Причем помимо глобального Stack Overflow есть русскоязычный сегмент — он находится на поддомене ru.stackoverflow.com.

Искать только по русскоязычным пользователям можно двумя способами:

Поиск по поддомену ru позволяет сузить выдачу. Например, если написать site:ru.stackoverflow.com/users ios swift, то гугл покажет около 200 профилей, а по запросу site:stackoverflow.com/users ios swift Russia — более 500.

Далеко не во всех профилях есть контакты. Но можно поискать среди пользователей, которые указали свой LinkedIn: cсылка будет в блоке About или в информации под фото. Составляем запрос:

site:stackoverflow.com/users ios|swift “linkedin.com/in/ *“ Russia

Stack Overflow — это не джоб-сайт, поэтому большинство пользователей не ищут работу. Но те, кто открыт к предложениям, иногда используют фразу looking for — за это можно зацепиться в запросе:

site:stackoverflow.com/users “Data Science“ “looking for“

Поиск через Stack Exchange Data Explorer

Stack Exchange Data Explorer — это сервис для поиска по базе пользователей Stack Overflow с помощью SQL-запросов. Если вы не знаете язык SQL, не беда, есть инструменты, которые помогут сформировать нужный запрос.

Генератор SQL-запросов

Этот сервис создает запрос под ваши требования. Можно задать местоположение и скиллы, выбрать обладателей конкретных бейджей от Stack Overflow:

В правой колонке автоматически формируется SQL-запрос. При нажатии на голубую кнопку текст копируется в буфер, а вас перекидывает на Stack Exchange Data Explorer, где можно отправить запрос.

Готовые скрипты

Скорее всего, нужный вам запрос уже кем-то написан — осталось только найти и подправить его под свои задачи.

Например, я нашел интересный скрипт, который необходимо настроить: указать локацию поиска в User.Location и скиллы (язык программирования или фреймворки) в Tags.TagName. Скрипт формирует таблицу, где по каждому пользователю есть информация:

  1. Ссылка на профиль в Stack Overflow.
  2. Репутация — формируется за счет ответов на вопросы и является частью системы геймификации Stack Overflow.
  3. Ссылка на веб-сайт, который указан в профиле.
  4. Предполагаемые ссылки на GitHub, LinkedIn и Telegram — формируются путем подстановки никнейма пользователя на Stack Overflow. Это сработает, только если человек использует один и тот же никнейм в разных соцсетях.

Есть готовый запрос для поиска по стеку и локации — надо только заполнить поля TagName и LocationName, а потом нажать кнопку Run Query. Например, если вбить Rust и Moscow, то получим выдачу из 50 профилей.

Внутренний поиск

Поиск по темам

Внутренний поиск Stack Overflow ориентирован не на людей и их навыки, а на темы и сообщения. Допустим, вам требуется информация по какой-то проблеме — делаете запрос и смотрите решения.

А вот получить выборку из всех java-разработчиков из Москвы не получится: этих фильтров просто нет во внутреннем поиске. С такими запросами лучше сразу идти на GitHub, LinkedIn или классические джоб-борды.

Но зато вы можете найти человека, который разбирается в узкой теме. Сценарий поиска такой:

  1. Рекрутер знает о проблеме, которую решает команда разработки.
  2. Он вбивает запрос по этой проблеме в поисковую строку на Stack Overflow.
  3. Затем читает обсуждения и пытается связаться с людьми, которые его заинтересовали.

Однажды таким способом я искал Reverse Engineer — это редкий специалист, который занимается информационной безопасностью и исследованиями. Я нашел кандидата и довел его до оффера, который тот, увы, так и не принял.

Для понимания работы операторов поиска по темам нужно изучить официальную документацию Stack Overflow.

Поиск синонимов

Stack Overflow можно использовать не только для поиска кандидатов — это еще и полезная база знаний для рекрутера, который начал работать с новой вакансией.

Допустим, вы впервые ищете ML-инженера и не знаете, какие ключевые слова использовать. Можно отправиться в гугл: разбираться в статьях, где обычно много воды, вычленять ключевики, пытаться докопаться до сути. Но есть более простой и быстрый способ — перейти в раздел «Метки» на Stack Overflow, найти нужную технологию, посмотреть описание и связанные с ней ключевые слова:

Для чего подходит Stack Overflow

Если нужен редкий специалист

Если ищете специалиста с редкой экспертизой или сочетанием скиллов, то Stack Overflow — хороший выбор. За классическими джавистами, питонистами, php-разработчиками и гошниками можно отправляться в другие источники, более удобные для рекрутинга.

Если нужна «звезда»

Здесь могут обитать популярные в комьюнити разработчики — они отвечают на вопросы, участвуют в обсуждениях, зарабатывают себе бейджи и репутацию.

Если вы охотитесь за конкретным кандидатом, то можете найти его на Stack Overflow. Почитайте, что он пишет в обсуждениях, чем интересуется — это помогает понять, как построить диалог со звездным собеседником.

Если надо изучить стек технологий

Чтобы построить конструктивный диалог с кандидатом, рекрутер должен говорить с ним на одном языке. А для этого нужно хотя бы минимально, но разбираться в предметной области: знать свой стек технологий, основные фреймворки и обсуждаемые темы.

Stack Overflow можно использовать для того, чтобы глубже погрузиться в предметную область, понять, чем живет сообщество, какие проблемы решает и что обсуждает.

Еще про сорсинг в блоге Хантфлоу:

  • Рекрутинг в LinkedIn: часть 1 и часть 2
  • Сорсинг на GitHub
  • Инструменты сорсинга: обзор для начинающих
  • 25 ресурсов для обучения сорсингу
  • 11 нестандартных источников для сорсинга
  • Руководство по сорсингу от Нарека Асликяна
  • Как развиваться сорсеру

Главное про сорсинг на Stack Overflow

  1. На Stack Overflow можно найти любых специалистов, которые пишут код.
  2. При этом сервис не очень удобен для рекрутеров: нет возможности писать личные сообщения, контакты часто отсутствуют, сложно понять, ищет ли кандидат работу.
  3. Stack Overflow удалил страницы с резюме (Developer Story) из профилей пользователей, но они остались в памяти гугла и все еще доступны для X-ray-поиска.
  4. Профили хранятся по адресу stackoverflow.com/users. Чтобы в выборке были только русскоязычные пользователи, ищите по русскоязычному сегменту (ru.stackoverflow.com/users) или используйте ключевое слово Russia.
  5. Применяйте Stack Exchange Data Explorer, чтобы искать по всей базе пользователей с помощью SQL-запросов. Если не знаете SQL, то воспользуйтесь готовыми скриптами или генератором запросов.
  6. Внутренний поиск Stack Overflow довольно бесполезен, потому что ориентирован на темы и вопросы, а не на людей и их скиллы. Однако его можно использовать, чтобы найти экспертов для решения какой-то специфической проблемы.
  7. Поиск по меткам — спасение для рекрутера, который хочет подобрать синонимы, но не готов копаться в гугле, вычленяя ключевые слова и разбираясь с новым для себя стеком.
  8. Если вам нужна «звезда», ее можно встретить среди пользователей с высокой репутацией.

Efficient, expressive, elegant

Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula.

Efficient

  • Nim generates native dependency-free executables, not dependent on a virtual machine, which are small and allow easy redistribution.
  • The Nim compiler and the generated executables support all major platforms like Windows, Linux, BSD and macOS.
  • Nim’s memory management is deterministic and customizable with destructors and move semantics, inspired by C++ and Rust. It is well-suited for embedded, hard-realtime systems.
  • Modern concepts like zero-overhead iterators and compile-time evaluation of user-defined functions, in combination with the preference of value-based datatypes allocated on the stack, lead to extremely performant code.
  • Support for various backends: it compiles to C, C++ or JavaScript so that Nim can be used for all backend and frontend needs.

Expressive

  • Nim is self-contained: the compiler and the standard library are implemented in Nim.
  • Nim has a powerful macro system which allows direct manipulation of the AST, offering nearly unlimited opportunities.

Elegant

  • Macros cannot change Nim’s syntax because there is no need for it — the syntax is flexible enough.
  • Modern type system with local type inference, tuples, generics and sum types.
  • Statements are grouped by indentation but can span multiple lines.
import std/strformat type Person = object name: string age: Natural # Ensures the age is positive let people = [ Person(name: "John", age: 45), Person(name: "Kate", age: 30) ] for person in people: # Type-safe string interpolation, # evaluated at compile time. echo(fmt" is years old") # Thanks to Nim's 'iterator' and 'yield' constructs, # iterators are as easy to write as ordinary # functions. They are compiled to inline loops. iterator oddNumbers[Idx, T](a: array[Idx, T]): T = for x in a: if x mod 2 == 1: yield x for odd in oddNumbers([3, 6, 9, 12, 15, 18]): echo odd # Use Nim's macro system to transform a dense # data-centric description of x86 instructions # into lookup tables that are used by # assemblers and JITs. import macros, strutils macro toLookupTable(data: static[string]): untyped = result = newTree(nnkBracket) for w in data.split(';'): result.add newLit(w) const data = "mov;btc;cli;xor" opcodes = toLookupTable(data) for o in opcodes: echo o
var conditional = 42 if conditional  0: echo "conditional < 0"elif conditional > 0: echo "conditional > 0" else: echo "conditional == 0" var ternary = if conditional == 42: true else: false var another = if conditional == 0: "zero" elif conditional mod 2 == 0: "even" else: "odd" # Case switch. var letter = 'c' case letter of 'a': echo "letter is 'a'" of 'b', 'c': echo "letter is 'b' or 'c'" of 'd'..'h': echo "letter is between 'd' and 'h'" else: echo "letter is another character"
import std/math # Basic math. assert 1 + 2 == 3 # Sum assert 4 - 1 == 3 # Subtraction assert 2 * 2 == 4 # Multiplication assert 4 / 2 == 2.0 # Division assert 4 div 2 == 2 # Integer Division assert 2 ^ 3 == 8 # Power assert 4 mod 2 == 0 # Modulo assert (2 xor 4) == 6 # XOR assert (4 shr 2) == 1 # Shift Right assert PI * 2 == TAU # PI and TAU assert sqrt(4.0) == 2.0 # Square Root assert round(3.5) == 4.0 # Round assert isPowerOfTwo(16) # Powers of Two assert floor(2.9) == 2.0 # Floor assert ceil(2.9) == 3.0 # Ceil assert cos(TAU) == 1.0 # Cosine assert gcd(12, 8) == 4 # Greatest common divisor assert trunc(1.75) == 1.0 # Truncate assert floorMod(8, 3) == 2 # Floor Modulo assert floorDiv(8, 3) == 2 # Floor Division assert hypot(4.0, 3.0) == 5.0 # Hypotenuse assert gamma(4.0) == 6.0 # Gamma function assert radToDeg(TAU) == 360.0 # Radians to Degrees assert clamp(1.4, 0.0 .. 1.0) == 1.0 # Clamp assert almostEqual(PI, 3.14159265358979) assert euclDiv(-13, -3) == 5 # Euclidean Division assert euclMod(-13, 3) == 2 # Euclidean Modulo
import std/[strutils, strscans] assert "con" & "cat" == "concat" assert " a ".strip == "a" assert "42".parseInt == 42 assert "3.14".parseFloat == 3.14 assert "0x666".parseHexInt == 1638 assert "TrUe".parseBool == true assert "0o777".parseOctInt == 511 assert "a".repeat(9) == "aaaaaaaaa" assert "abc".startsWith("ab") assert "abc".endsWith("bc") assert ["a", "b", "c"].join == "abc" assert "abcd".find("c") == 2 assert "a x a y a z".count("a") == 3 assert "A__B__C".normalize == "abc" assert "a,b".split(",") == @["a", "b"] assert "a".center(5) == " a " assert "a".indent(4) == " a" assert " a".unindent(4) == "a" for word in tokenize("This is an example"): echo word let (ok, year, month, day) = scanTuple("1000-01-01", "$i-$i-$i") if ok: assert year == 1000 assert month == 1 assert day == 1
import std/[sugar, tables, sets, sequtils, strutils] let variable0 = collect(newSeq): for item in @[-9, 1, 42, 0, -1, 9]: item * 2 assert variable0 == @[-18, 2, 84, 0, -2, 18] let variable1 = collect(initTable): for key, value in @[0, 5, 9]: key: value div 2> assert variable1 == 0: 0, 1: 2, 2: 4>.toTable let variable2 = collect(initHashSet): for item in @[-9, 1, 42, 0, -1, 9]: item + item> assert variable2 == [2, 18, 84, 0, -18, -2].toHashSet assert toSeq(1..15).mapIt( if it mod 15 == 0: "FizzBuzz" elif it mod 5 == 0: "Buzz" elif it mod 3 == 0: "Fizz" else: $it ).join(" ").strip == "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *