Код в фильмах: Кремниевая долина, сезон 2 (Silicon Valley S02)
![]()
Продолжаю разбирать сезонами.
Сезон 2, Серия 1
В этом сезоне мелькает довольно много кода, но весь он показан вдалеке и размыто, поэтому мало что удалось прочесть.
![]()
Числа на футболке Эрлиха - это слово Bitcoin
Серия 3
![]()
Тут аж целых три фрагмента с кодом.
![]()
Слева вверху цитата из статьи “Multipeer Connectivity API”: фреймворк от Apple, который позволяет устройствам iOS, iPadOS, macOS и др. обнаруживать друг друга и обмениваться данными напрямую, без необходимости подключения к интернету или общей сети. Статья позже была дополнена примерами на Swift, но на момент выхода сериала - код на Objective-C.
Фрагмент кода:
#pragma mark - MCNearbyServiceAdvertiserDelegate
- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser
didReceiveInvitationFromPeer:(MCPeerID *)peerID
withContext:(NSData *)context
invitationHandler:(void(^)(BOOL accept, MCSession *session))invitationHandler
{
if ([self.mutableBlockedPeers containsObject:peerID]) {
invitationHandler(NO, nil);
return;
}
[[UIActionSheet actionSheetWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Received Invitation from %@", @"Received Invitation from {Peer}"), peerID.displayName]
cancelButtonTitle:NSLocalizedString(@"Reject", nil)
![]()
Слева внизу фрагмент из документации на Gradle - система управления зависимостями и автоматизация сборки, создание всяких задач и скриптов.
Main.java
package org.gradle.sample;
import org.gradle.tooling.*;
import org.gradle.sample.plugin.CustomModel;
import java.io.File;
import java.lang.Object;
import java.lang.String;
import java.lang.System;
public class Main {
public static void main(String[] args) {
// Configure the connector and create the connection
GradleConnector connector = GradleConnector.newConnector();
if (args.length > 0) {
connector.useInstallation(new File(args[0]));
if (args.length > 1) {
connector.useGradleUserHomeDir(new File(args[1]));
}
}
connector.forProjectDirectory(new File("../sample-build"));
ProjectConnection connection = connector.connect();
try {
// Load the custom model for the project
CustomModel model = connection.getModel(CustomModel.class);
System.out.println("Project: " + model.getName());
System.out.println("Tasks: ");
for (String task : model.getTasks()) {
System.out.println(" " + task);
}
} finally {
// Clean up
connection.close();
}
}
}
![]()
Справа вверху файл R.java - компиляция ресурсов приложения для Android. По скомпилированному файлу, к сожалению, не понять, какой интерфейс у приложения, для которого сгенерирован этот файл, и чем это приложение вообще должно заниматься.
public static final int activity_horizontal_margin=0x7f040000;
public static final int activity_vertical_margin=0x7f040001;
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
![]()
Что на экране опять не разобрать - слишком мыльно. C? Swift? Но в руках - книга “Arduino Projects Book”. Для самого первого знакомства с Ардуино. Как собирать схемы на макетной плате, как писать к ним простенькие программы. Крупный кегль и много картинок.
Серия 8
![]()
На экране файл с названием Buffer.java. Название проекта: p2pradio. Назначение кода - потоковый приём пакетов данных (кадры видео? аудио?) с некоторой заданной частотой.
public synchronized Packet getFuturePacket(long streamPacketSeqNr, long maxTimeToWait)
{
try
{
return get(streamPacketSeqNrToBufferSeqNr(streamPacketSeqNr));
}
catch (P__rException ex)
{
long waitUntil = System.currentTimeMillis() + maxTimeToWait;
long time;
while (waitUntil > (time = System.currentTimeMillis()))
{
try
{
wait(waitUntil - time);
}
catch (InterruptedException e)
{
Logger.severe("Buffer", "INTERNAL_ERROR", e);
}
long seqNr = 0;
boolean packetAvailable = true;
try
{
seqNr = streamPacketSeqNrToBufferSeqNr(streamPacketSeqNr);
![]()
Идёт массовая заливка видео:
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip21598.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip21599.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip21983.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip21985.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip25198.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip25248.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip2525148.mov
pid 3 [rsync_user] OK UPLOAD : Client - 10.10.158.199 /mount/gluster/originals/yiffing/clip2526148.mov
Жаргонное “yiffing” - это секс с участием фурри - антропоморфных животных
(в этой сцене проигрывается видео с логом загрузки задом наперёд, иллюстрируя стирание файлов)
Серия 10
![]()
Собирают презентацию, используя кадры упавшего и покалеченного работника?
На экране разметка на SMIL - язык разметки для создания мультимедийных презентаций. Брат html-разметки.