Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 30723 сообщений
Cообщения с меткой

google - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Опубликована полная база свободных репозиториев Github через интерфейс BigQuery

Четверг, 30 Июня 2016 г. 14:02 (ссылка)

2,8 млн репозиториев, 3 ТБ исходного кода и метаданных







Google в сотрудничестве с Github выложила для общественного пользования полную актуальную базу всех open-source репозиториев через интерфейс BigQuery. (Проверка свободной лицензии осуществляется через API.)



Наборы данных Google BigQuery Public Datasets содержат информацию о более чем 2,8 млн свободных репозиториев, более 2 миллиардах файлов (исходный код последних версий 163 млн файлов), 145 млн коммитов и т.д. Общий размер базы — около 3 терабайт.



Раньше архивы Github выкладывались на Github Archive. Теперь всё это богатство доступно для полнотекстового поиска и анализа через простые SQL-запросы. Github обещает обновлять наборы данных еженедельно.



BigQuery — это облачный сервис для интерактивного анализа больших наборов данных. Модель использования BigQuery довольно проста: передача данных реализована с помощью обычных API-вызовов. Это избавляет от необходимости предварительного кэширования и позволяет выполнять потоковую обработку данных в режиме реального времени.



Другими словами, теперь с помощью простого SQL-запроса можно получить любую статистику по репозиториям Github. Как репозитории самые популярные за всё время? За последний год? За последнюю неделю? Кстати, вот результат выдачи по запросу 1000 самых популярных репозиториев за 2015-2016 гг (перечислены первые десять).






































































repo_id repo_name num_stars
1 28457823 FreeCodeCamp/FreeCodeCamp 143920
2 21737465 sindresorhus/awesome 36429
3 29028775 facebook/react-native 36285
4 10270250 facebook/react 34656
5 44838949 apple/swift 33838
6 2126244 twbs/bootstrap 28916
7 45717250 tensorflow/tensorflow 28345
8 35955666 jlevy/the-art-of-command-line 27766
9 14440270 getify/You-Dont-Know-JS 27473
10 6498492 airbnb/javascript 27247
(Выдача по запросу 1000 самых популярных репозиториев — результат обработки по трём параметрам всего 15,4 ГБ данных из бесплатного месячного лимита 1 ТБ, который Google даёт каждому пользователю BigQuery)



Примеры запросов
Примеры запросов BigQuery



Все репозитории с комментарием в коде «Такое никогда не должно произойти»



SELECT count(*)
FROM (SELECT id, repo_name, path
FROM [bigquery-public-data:github_repos.sample_files]
) AS F
JOIN (SELECT id
FROM [bigquery-public-data:github_repos.sample_contents]
WHERE NOT binary
AND content CONTAINS 'This should never happen') AS C
ON F.id = C.id;




Самые часто используемые пакеты Go



SELECT
REGEXP_EXTRACT(line, r'"([^"]+)"') AS url,
COUNT(*) AS count
FROM FLATTEN(
(SELECT
SPLIT(SPLIT(REGEXP_EXTRACT(content, r'.*import\s*[(]([^)]*)[)]'), '\n'), ';') AS line,
FROM
(SELECT id, content FROM [bigquery-public-data:github_repos.sample_contents]
WHERE REGEXP_MATCH(content, r'.*import\s*[(][^)]*[)]')) AS C
JOIN EACH
(SELECT id FROM [bigquery-public-data:github_repos.sample_files]
WHERE path LIKE '%.go' GROUP BY id) AS F
ON C.id = F.id), line)
GROUP BY url
HAVING url IS NOT NULL
ORDER BY count DESC




Самые часто используемые пакеты Java



SELECT package, COUNT(*) c
FROM (
SELECT REGEXP_EXTRACT(line, r' ([a-z0-9\._]*)\.') package, id
FROM (
SELECT SPLIT(content, '\n') line, id
FROM [bigquery-public-data:github_repos.sample_contents]
WHERE content CONTAINS 'import'
AND sample_path LIKE '%.java'
HAVING LEFT(line, 6)='import'
)
GROUP BY package, id
)
GROUP BY 1
ORDER BY c DESC
LIMIT 500;




Эмодзи в коммитах



SELECT
REGEXP_REPLACE(REGEXP_REPLACE(word, r'^[^:]*:', ''), r':[^:]*$', '') as emoticon,
C.committer.time_sec as committed_at,
count(*) as count
FROM ( SELECT SPLIT(message, ' ') as word, committer.time_sec
FROM [bigquery-public-data:github_repos.sample_commits]
) as C
where
REGEXP_MATCH(word, r':[\w]+:') and
REGEXP_REPLACE(REGEXP_REPLACE(word, r'^[^:]*:', ''), r':[^:]*$', '') in ("+1", "-1", "100", "1234", "8ball", "a", "ab", "abc", "abcd", "accept", "aerial_tramway", "airplane", "alarm_clock", "alien", "ambulance", "anchor", "angel", "anger", "angry", "anguished", "ant", "apple", "aquarius", "aries", "arrow_backward", "arrow_double_down", "arrow_double_up", "arrow_down", "arrow_down_small", "arrow_forward", "arrow_heading_down", "arrow_heading_up", "arrow_left", "arrow_lower_left", "arrow_lower_right", "arrow_right", "arrow_right_hook", "arrow_up", "arrow_up_down", "arrow_up_small", "arrow_upper_left", "arrow_upper_right", "arrows_clockwise", "arrows_counterclockwise", "art", "articulated_lorry", "astonished", "atm", "b", "baby", "baby_bottle", "baby_chick", "baby_symbol", "back", "baggage_claim", "balloon", "ballot_box_with_check", "bamboo", "banana", "bangbang", "bank", "bar_chart", "barber", "baseball", "basketball", "bath", "bathtub", "battery", "bear", "bee", "beer", "beers", "beetle", "beginner", "bell", "bento", "bicyclist", "bike", "bikini", "bird", "birthday", "black_circle", "black_joker", "black_medium_small_square", "black_medium_square", "black_nib", "black_small_square", "black_square", "black_square_button", "blossom", "blowfish", "blue_book", "blue_car", "blue_heart", "blush", "boar", "boat", "bomb", "book", "bookmark", "bookmark_tabs", "books", "boom", "boot", "bouquet", "bow", "bowling", "bowtie", "boy", "bread", "bride_with_veil", "bridge_at_night", "briefcase", "broken_heart", "bug", "bulb", "bullettrain_front", "bullettrain_side", "bus", "busstop", "bust_in_silhouette", "busts_in_silhouette", "cactus", "cake", "calendar", "calling", "camel", "camera", "cancer", "candy", "capital_abcd", "capricorn", "car", "card_index", "carousel_horse", "cat", "cat2", "cd", "chart", "chart_with_downwards_trend", "chart_with_upwards_trend", "checkered_flag", "cherries", "cherry_blossom", "chestnut", "chicken", "children_crossing", "chocolate_bar", "christmas_tree", "church", "cinema", "circus_tent", "city_sunrise", "city_sunset", "cl", "clap", "clapper", "clipboard", "clock1", "clock10", "clock1030", "clock11", "clock1130", "clock12", "clock1230", "clock130", "clock2", "clock230", "clock3", "clock330", "clock4", "clock430", "clock5", "clock530", "clock6", "clock630", "clock7", "clock730", "clock8", "clock830", "clock9", "clock930", "closed_book", "closed_lock_with_key", "closed_umbrella", "cloud", "clubs", "cn", "cocktail", "coffee", "cold_sweat", "collision", "computer", "confetti_ball", "confounded", "confused", "congratulations", "construction", "construction_worker", "convenience_store", "cookie", "cool", "cop", "copyright", "corn", "couple", "couple_with_heart", "couplekiss", "cow", "cow2", "credit_card", "crocodile", "crossed_flags", "crown", "cry", "crying_cat_face", "crystal_ball", "cupid", "curly_loop", "currency_exchange", "curry", "custard", "customs", "cyclone", "dancer", "dancers", "dango", "dart", "dash", "date", "de", "deciduous_tree", "department_store", "diamond_shape_with_a_dot_inside", "diamonds", "disappointed", "disappointed_relieved", "dizzy", "dizzy_face", "do_not_litter", "dog", "dog2", "dollar", "dolls", "dolphin", "donut", "door", "doughnut", "dragon", "dragon_face", "dress", "dromedary_camel", "droplet", "dvd", "e\\-mail", "ear", "ear_of_rice", "earth_africa", "earth_americas", "earth_asia", "egg", "eggplant", "eight", "eight_pointed_black_star", "eight_spoked_asterisk", "electric_plug", "elephant", "email", "end", "envelope", "es", "euro", "european_castle", "european_post_office", "evergreen_tree", "exclamation", "expressionless", "eyeglasses", "eyes", "facepunch", "factory", "fallen_leaf", "family", "fast_forward", "fax", "fearful", "feelsgood", "feet", "ferris_wheel", "file_folder", "finnadie", "fire", "fire_engine", "fireworks", "first_quarter_moon", "first_quarter_moon_with_face", "fish", "fish_cake", "fishing_pole_and_fish", "fist", "five", "flags", "flashlight", "floppy_disk", "flower_playing_cards", "flushed", "foggy", "football", "fork_and_knife", "fountain", "four", "four_leaf_clover", "fr", "free", "fried_shrimp", "fries", "frog", "frowning", "fu", "fuelpump", "full_moon", "full_moon_with_face", "game_die", "gb", "gem", "gemini", "ghost", "gift", "gift_heart", "girl", "globe_with_meridians", "goat", "goberserk", "godmode", "golf", "grapes", "green_apple", "green_book", "green_heart", "grey_exclamation", "grey_question", "grimacing", "grin", "grinning", "guardsman", "guitar", "gun", "haircut", "hamburger", "hammer", "hamster", "hand", "handbag", "hankey", "hash", "hatched_chick", "hatching_chick", "headphones", "hear_no_evil", "heart", "heart_decoration", "heart_eyes", "heart_eyes_cat", "heartbeat", "heartpulse", "hearts", "heavy_check_mark", "heavy_division_sign", "heavy_dollar_sign", "heavy_exclamation_mark", "heavy_minus_sign", "heavy_multiplication_x", "heavy_plus_sign", "helicopter", "herb", "hibiscus", "high_brightness", "high_heel", "hocho", "honey_pot", "honeybee", "horse", "horse_racing", "hospital", "hotel", "hotsprings", "hourglass", "hourglass_flowing_sand", "house", "house_with_garden", "hurtrealbad", "hushed", "ice_cream", "icecream", "id", "ideograph_advantage", "imp", "inbox_tray", "incoming_envelope", "information_desk_person", "information_source", "innocent", "interrobang", "iphone", "it", "izakaya_lantern", "jack_o_lantern", "japan", "japanese_castle", "japanese_goblin", "japanese_ogre", "jeans", "joy", "joy_cat", "jp", "key", "keycap_ten", "kimono", "kiss", "kissing", "kissing_cat", "kissing_closed_eyes", "kissing_face", "kissing_heart", "kissing_smiling_eyes", "koala", "koko", "kr", "large_blue_circle", "large_blue_diamond", "large_orange_diamond", "last_quarter_moon", "last_quarter_moon_with_face", "laughing", "leaves", "ledger", "left_luggage", "left_right_arrow", "leftwards_arrow_with_hook", "lemon", "leo", "leopard", "libra", "light_rail", "link", "lips", "lipstick", "lock", "lock_with_ink_pen", "lollipop", "loop", "loudspeaker", "love_hotel", "love_letter", "low_brightness", "m", "mag", "mag_right", "mahjong", "mailbox", "mailbox_closed", "mailbox_with_mail", "mailbox_with_no_mail", "man", "man_with_gua_pi_mao", "man_with_turban", "mans_shoe", "maple_leaf", "mask", "massage", "meat_on_bone", "mega", "melon", "memo", "mens", "metal", "metro", "microphone", "microscope", "milky_way", "minibus", "minidisc", "mobile_phone_off", "money_with_wings", "moneybag", "monkey", "monkey_face", "monorail", "moon", "mortar_board", "mount_fuji", "mountain_bicyclist", "mountain_cableway", "mountain_railway", "mouse", "mouse2", "movie_camera", "moyai", "muscle", "mushroom", "musical_keyboard", "musical_note", "musical_score", "mute", "nail_care", "name_badge", "neckbeard", "necktie", "negative_squared_cross_mark", "neutral_face", "new", "new_moon", "new_moon_with_face", "newspaper", "ng", "nine", "no_bell", "no_bicycles", "no_entry", "no_entry_sign", "no_good", "no_mobile_phones", "no_mouth", "no_pedestrians", "no_smoking", "non\\-potable_water", "nose", "notebook", "notebook_with_decorative_cover", "notes", "nut_and_bolt", "o", "o2", "ocean", "octocat", "octopus", "oden", "office", "ok", "ok_hand", "ok_woman", "older_man", "older_woman", "on", "oncoming_automobile", "oncoming_bus", "oncoming_police_car", "oncoming_taxi", "one", "open_file_folder", "open_hands", "open_mouth", "ophiuchus", "orange_book", "outbox_tray", "ox", "package", "page_facing_up", "page_with_curl", "pager", "palm_tree", "panda_face", "paperclip", "parking", "part_alternation_mark", "partly_sunny", "passport_control", "paw_prints", "peach", "pear", "pencil", "pencil2", "penguin", "pensive", "performing_arts", "persevere", "person_frowning", "person_with_blond_hair", "person_with_pouting_face", "phone", "pig", "pig2", "pig_nose", "pill", "pineapple", "pisces", "pizza", "plus1", "point_down", "point_left", "point_right", "point_up", "point_up_2", "police_car", "poodle", "poop", "post_office", "postal_horn", "postbox", "potable_water", "pouch", "poultry_leg", "pound", "pouting_cat", "pray", "princess", "punch", "purple_heart", "purse", "pushpin", "put_litter_in_its_place", "question", "rabbit", "rabbit2", "racehorse", "radio", "radio_button", "rage", "rage1", "rage2", "rage3", "rage4", "railway_car", "rainbow", "raised_hand", "raised_hands", "raising_hand", "ram", "ramen", "rat", "recycle", "red_car", "red_circle", "registered", "relaxed", "relieved", "repeat", "repeat_one", "restroom", "revolving_hearts", "rewind", "ribbon", "rice", "rice_ball", "rice_cracker", "rice_scene", "ring", "rocket", "roller_coaster", "rooster", "rose", "rotating_light", "round_pushpin", "rowboat", "ru", "rugby_football", "runner", "running", "running_shirt_with_sash", "sa", "sagittarius", "sailboat", "sake", "sandal", "santa", "satellite", "satisfied", "saxophone", "school", "school_satchel", "scissors", "scorpius", "scream", "scream_cat", "scroll", "seat", "secret", "see_no_evil", "seedling", "seven", "shaved_ice", "sheep", "shell", "ship", "shipit", "shirt", "shit", "shoe", "shower", "signal_strength", "six", "six_pointed_star", "ski", "skull", "sleeping", "sleepy", "slot_machine", "small_blue_diamond", "small_orange_diamond", "small_red_triangle", "small_red_triangle_down", "smile", "smile_cat", "smiley", "smiley_cat", "smiling_imp", "smirk", "smirk_cat", "smoking", "snail", "snake", "snowboarder", "snowflake", "snowman", "sob", "soccer", "soon", "sos", "sound", "space_invader", "spades", "spaghetti", "sparkle", "sparkler", "sparkles", "sparkling_heart", "speak_no_evil", "speaker", "speech_balloon", "speedboat", "squirrel", "star", "star2", "stars", "station", "statue_of_liberty", "steam_locomotive", "stew", "straight_ruler", "strawberry", "stuck_out_tongue", "stuck_out_tongue_closed_eyes", "stuck_out_tongue_winking_eye", "sun_with_face", "sunflower", "sunglasses", "sunny", "sunrise", "sunrise_over_mountains", "surfer",
"sushi", "suspect", "suspension_railway", "sweat", "sweat_drops", "sweat_smile", "sweet_potato", "swimmer", "symbols", "syringe", "tada", "tanabata_tree", "tangerine", "taurus", "taxi", "tea", "telephone", "telephone_receiver", "telescope", "tennis", "tent", "thought_balloon", "three", "thumbsdown", "thumbsup", "ticket", "tiger", "tiger2", "tired_face", "tm", "toilet", "tokyo_tower", "tomato", "tongue", "top", "tophat", "tractor", "traffic_light", "train", "train2", "tram", "triangular_flag_on_post", "triangular_ruler", "trident", "triumph", "trolleybus", "trollface", "trophy", "tropical_drink", "tropical_fish", "truck", "trumpet", "tshirt", "tulip", "turtle", "tv", "twisted_rightwards_arrows", "two", "two_hearts", "two_men_holding_hands", "two_women_holding_hands", "u5272", "u5408", "u55b6", "u6307", "u6708", "u6709", "u6e80", "u7121", "u7533", "u7981", "u7a7a", "uk", "umbrella", "unamused", "underage", "unlock", "up", "us", "v", "vertical_traffic_light", "vhs", "vibration_mode", "video_camera", "video_game", "violin", "virgo", "volcano", "vs", "walking", "waning_crescent_moon", "waning_gibbous_moon", "warning", "watch", "water_buffalo", "watermelon", "wave", "wavy_dash", "waxing_crescent_moon", "waxing_gibbous_moon", "wc", "weary", "wedding", "whale", "whale2", "wheelchair", "white_check_mark", "white_circle", "white_flower", "white_large_square", "white_medium_small_square", "white_medium_square", "white_small_square", "white_square_button", "wind_chime", "wine_glass", "wink", "wolf", "woman", "womans_clothes", "womans_hat", "womens", "worried", "wrench", "x", "yellow_heart", "yen", "yum", "zap", "zero", "zzz")
group by 1, 2
order by count DESC
LIMIT 100;




Из каких университетов (.edu) пришло больше всего коммитов



SELECT REGEXP_EXTRACT(email, r'@(.*)') domain, COUNT(*) c
FROM (
SELECT REGEXP_EXTRACT(payload, r'([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)') email
FROM [githubarchive:month.201512]
WHERE REGEXP_EXTRACT(payload, r'([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)') IS NOT null
GROUP BY 1
HAVING email CONTAINS '.edu'
)
GROUP BY 1
ORDER BY 2 DESC
LIMIT 500;


Тем кто хочет поэкспериментировать с запросами к базе GitHub Data, рекомендуют не обращаться к основной таблице [bigquery-public-data:github_repos.contents] размером 1,5 ТБ, которая содержит все небинарный файлы размером меньше 1 МБ. Она мгновенно сожрёт ваш бесплатный месячный лимит, а вместо этого обращаться к таблице с выжимкой 10% файлов самых популярных репозиториев [bigquery-public-data:github_repos.sample_contents] размером всего 23 ГБ или к отдельным таблицам для языков программирования .go, .rb. .js, .php, .py и .java [fh-bigquery:github_extracts.contents_*].



Официальное сообщение Google

Официальное сообщение Github

Документация по GitHub Data



В сети уже начали появляться интересные сервисы с визуализацией данных Github Data.












Original source: habrahabr.ru.

https://habrahabr.ru/post/304476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Как быстро подключить google proto3 к вашему spring (boot) web проекту

Среда, 29 Июня 2016 г. 16:06 (ссылка)

Краткое описание как подключить Google Protocol Buffers / Proto3 к вашему Spring проекту





Spring Boot: позволяет быстро разрабатывать stand-alone веб приложения которые вы можете «просто» запустить с минимумом настроек.

Google proto3: легкий, гибкий, автоматический механизм сериализации данных.



Эта статья объяснит как быстро соединить эти технологии вместе. Ознакомиться с технологиями вы можете самостоятельно пройдя по ссылкам в материалах.







Для того чтобы создать новый spring-boot проект вы можете воспользоваться Spring Initializr веб сайтом.

Я выбрал Web как dependency, проект генерировал для maven.



Настройка модуля моделей




В модуле моделей будут находится только файлы с расширением *.proto и автоматически сгенерированные java классы



Proto* файлы помещаются в src/main/proto

Для примера я создал health.proto



package demo.domain;

option java_package = "demo.domain";
option java_outer_classname = "HealthCheckProtos";

message HealthCheck {

required string response = 1;
required string timestamp = 2;
required string version = 3;

}




На основании которого будет генериться java класс HealthCheckProtos который я буду использовать в Spring контроллере.



Необходимая конфигурация pom.xml





4.0.0


demo
spring-boot-proto3
0.0.1-SNAPSHOT


spring-boot-proto3-domain
jar

spring-boot-proto3-domain
Domain module


${project.basedir}/src/main/proto
${project.build.directory}/generated-sources




com.google.protobuf
protobuf-java


com.googlecode.protobuf-java-format
protobuf-java-format







org.apache.maven.plugins
maven-dependency-plugin
2.10


copy-protoc
generate-sources

copy




com.google.protobuf
protoc
${protobuf.version}
windows-x86_64
exe
true
${project.build.directory}








org.apache.maven.plugins
maven-antrun-plugin
1.8


exec-protoc
generate-sources






















run





org.codehaus.mojo
build-helper-maven-plugin
1.9.1


add-classes
generate-sources

add-source



<$ource>${protobuf.output.directory}














Здесь впринципе все стандартно, кроме: classifier у protoc и protoc.filename у maven-antrun-plugin, они к сожалению привязаны к системе на машине сборки, я собирал на Win X64



Настройка веб модуля




К молулю подключаются spring boot и доменный модуль с классами proto3





4.0.0


demo
spring-boot-proto3
0.0.1-SNAPSHOT


spring-boot-proto3-web
jar

spring-boot-proto3-web
Web module



org.springframework.boot
spring-boot-starter-web


demo
spring-boot-proto3-domain






org.springframework.boot
spring-boot-maven-plugin









После этого необходимо добавить ProtobufHttpMessageConverter к HttpMessageConverter



package demo.config;

import java.util.HashMap;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {

/**
* {@inheritDoc}
*/
@Override
public void configureMessageConverters(List> converters) {
converters.add(protobufHttpMessageConverter());
}

/**
* {@inheritDoc}
*/
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.replaceMediaTypes(new HashMap<>()) //
.favorPathExtension(false) //
.defaultContentType(ProtobufHttpMessageConverter.PROTOBUF);
}

@Bean
ProtobufHttpMessageConverter protobufHttpMessageConverter() {
return new ProtobufHttpMessageConverter();
}

}




Для примера я создал контроллер который бы показывал статус приложения с использованием модели сгенерированной при помощи proto3




package demo.web;

import java.time.LocalDateTime;

import demo.domain.HealthCheckProtos;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HealthCheckController {

@Value("${health.controller.response}")
private String response;
@Value("${health.controller.version}")
private String version;

@RequestMapping("/ping")
public HealthCheckProtos.HealthCheck get() {
return HealthCheckProtos.HealthCheck.newBuilder() //
.setResponse(response) //
.setTimestamp(LocalDateTime.now().toString()) //
.setVersion(version) //
.build();
}

}





При генерации классов proto3 так же генерирует билдеры которые вы можете использовать для создания модели.



Пример запроса к контроллеру




" alt=«image»/>



Так же добавив header «Accept»:«application/json» вы можете получить тот же ответ сериализованный в json.



Использовался следующий материал:


Исходный код проекта можно скачать тут: bitbucket.org/wickiup/spring-boot-proto3

Быстрый старт со spring boot: projects.spring.io/spring-boot

Быстрый старт с proto3: developers.google.com/protocol-buffers/docs/javatutorial
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/304396/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
vsemmoney

Нацеленное на пользователей Facebook вредоносное ПО распространяется через Google Chrome - Безопасность - Форум о заработке в интернете и инвестициях

Среда, 29 Июня 2016 г. 22:47 (ссылка)
vsemmoney.ru/topic/3883-nat...snoe-po-r/


Нацеленное на пользователей Facebook вредоносное ПО распространяется через Google Chrome - отправлено в Безопасность:

 

В ходе вредоносной кампании жертва получает уведомления от Facebook якобы о том, что ее упомянули в комментарии.



Facebook является одной из социальных сетей с наибольшей аудиторией, поэтому привлекает всевозможных киберпреступников. Как сообщается на сайте Information Security Stack Exchange, в настоящее время пользователей соцсети атакует вредоносное ПО...

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Сточные воды как охладитель

Вторник, 28 Июня 2016 г. 13:05 (ссылка)

Как на счет того, чтобы для охлаждения серверов в жару использовать сточные воды? Знаем, умеем, практикуем — компания Apple недавно заявила о своем намерении проспонсировать строительство обьекта по очистке сточных вод в городе Праймвилль (штат Орегон, США). В этом городке уже есть дата-центр компании, согласно информационному агенству Oreon Live, он считается самым крупным потребителем воды в этом регионе.







Идея постройки уникальных систем водоочистки рядом с ЦОД не новая. Многие компании уже спроектировали и построили такие системы, с помощью таких систем можно использовать переработанную канализационную воду для охлаждения серверных ферм с помощью этой же воды. Все это экономит деньги компаний на счетах за электроенергию, при этом еще и снижает негативное влияние инфраструктуры дата-центра на окружающую среду. Уже не раз поднимался вопрос о том, что для работы серверных ферм используется очень большое количество воды, особенно остро вопрос был поднят в прошлом году, из-за засухи в Калифорнии.







На данный момент политика компании Apple нацелена на разработку систем, которые помогут сократить водопотребление. Об этом было заявлено в докладе по Корпоративной ответственности в области защиты окружающей среды (Environmental Responsibility Report 2016). Откровенно сказать, доклад не освещает всю картину, ведь многие помещения для размещения своих инфраструктур компания арендует у сторонних колокейшен-провайдеров. В докладе были упомянуты 4 серверные фермы компании в Мэйдене, штат Северная Каролина, Ньюарке, штат Калифорния, Рино, штат Невада и Праймвилле, штат Орегон.





Мэйден, штат Северная Каролина



Постоянный рост и расширение уже существующих кампусов дата-центров компании приводит к всевозрастающему водопотреблению. В 2012 году Apple использовала немного больше чем 190 млн. литров воды на потребности серверных ферм, водопотребление корпоративных офисов компании составило 850 млн. литров воды. За последние три года потребление воды ЦОДами Apple выросло в три раза. В 2015 году компанией было использовано 2169 млн литров воды, 28 процентов из которых пошли на покрытие нужд серверных ферм.



Apple, стремясь уменьшить неблагоприятное влияние на окружающую среду, намерена минимизировать водопотребление. До недавнего времени с этой целью в дата-центрах использовались системы охлаждения с инновационной конструкцией, ориентированной на максимально интенсивное использование наружного воздуха вместо водяных чиллеров. Система охлаждения серверной фермы компании Apple в Мэйдене яркий пример тому. Данная система обеспечивает 35 кратную рециркуляцию воды, что в свою очередь снижает потребление жидкости на 20 процентов.



Строительство завода по переработке сточных вод в Праймвилле



— как выход со сложившейся ситуации. Это первый подобный проект, финансируемый компанией. За 2015 год местная серверная ферма (общей площадью 31,5 тыс. квадратных метров) израсходовала 100 млн. литров воды, и ожидается, что площадь будет увеличиваться, ведь на территории кампуса сейчас ведутся строительные работы с целью его расширения.



Очистные сооружения будут осуществлять забор воды из канализационной системы города, после чего очищать ее в достаточной степени для использования в системах испарительного охлаждения дата-центров. Представители Apple уверяют, что строительство завода по переработке сточных вод позволит минимизировать риск возникновения дефицита воды, а также значительно сократить уровень негативного влияния серверной фермы на состояние окружающей среды.





серверная ферма Google в Джорджии



Такую систему охлаждения своих дата-центров уже не один год практикует компания Google. Серверная ферма Google в Джорджии была запущена в 2007 году, изначально использовала для охлаждения питьевую воду. Позже, в целях экономии и чтобы снизить влияние своей инфраструктуры на окружающую среду, совместно с местными органами власти, компания создала систему, в которую направляется 30% очищенных сточных вод из близлежащих очистительных сооружений, которые сбрасывались бы в реку Чаттахучи.



Для охлаждения ЦОД Агентства национальной безопасности США в Форт Миди, строительство которого началось в 2014 году, также будет использоваться около 18 млн. литров очищенных сточных вод с коммунального предприятия в Мериленде, после чего эту воду планируется сбрасывать в реку. NSA потратило 40 млн. долларов на постройку насосной станции для систем охлаждения серверной фермы.
Original source: habrahabr.ru.

https://habrahabr.ru/post/303940/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<google - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda