14.4 C
Oeiras Municipality
Ter 25 Março 2025
Inicio Ciência Primeiro Satélite Universitário Português desenvolvido em Oeiras

Primeiro Satélite Universitário Português desenvolvido em Oeiras

Estudantes do Instituto Superior Técnico (IST) vão lançar satélite para o Espaço no dia 9 de julho, às 17:00, no Átrio Central, Instituto Superior Técnico Polo de Oeiras, no Taguspark.

O ISTSat-1, primeiro satélite universitário fabricado em Portugal, totalmente desenvolvido no Polo de Oeiras do Instituto Superior Técnico, vai ser lançado no dia 9 de julho, às 17:00, à boleia do voo inaugural do novo foguetão europeu Ariane 6.

Neste dia será também assinado o protocolo que cria o Oeiras Valley Space Hub, uma iniciativa que resulta de uma parceria entre a Câmara Municipal de Oeiras, o Centro de Engenharia e Desenvolvimento (CEiiA) e o Instituto Superior Técnico.

Além destas iniciativas, terá lugar ainda uma mesa redonda na qual será discutido o tema ‘Como preparar a próxima geração para uma nova era no Espaço?’.

O Município de Oeiras tem vindo a apostar numa estratégia para transformar concelho no maior ecossistema de inovação do País, através da criação de condições para atrair as melhores ideias e a melhor tecnologia, com a instalação de entidades e empresas de base tecnológica e de investigação, que estimulem a criação de empregos com alto valor acrescentado no Município.

Neste sentido, o Município de Oeiras tem aliado esforços com o Centro de Engenharia e Desenvolvimento (CEiiA), vocacionado para o desenvolvimento de novos produtos e serviços para uma sociedade mais sustentável, em setores de elevada intensidade tecnológica, como é o caso do Espaço, e com o Instituto Superior Técnico (IST), que desenvolve no seu polo de Oeiras atividades de Investigação e Desenvolvimento e de ensino em diversas áreas de Engenharia que são essenciais como suporte a uma cadeia de valor no desenvolvimento de tecnologias para o Espaço.

As três entidades estão a trabalhar no desenvolvimento de um plano estratégico que contribua para que Oeiras venha a ser um polo tecnológico de referência internacional na área do Novo Espaço. Esse projeto é o Oeiras Valley Space Hub.

PROGRAMA DO EVENTO

🔹 Data: 9 de Julho
🔹 Hora: 17h às 19h
🔹 Local: Átrio Central, Instituto Superior Técnico Polo de Oeiras

▪️ 17h | Abertura e Boas Vindas

– Rogério Colaço, Presidente do Instituto Superior Técnico
– Isaltino Morais, Presidente da Câmara Municipal de Oeiras

▪️ 17h10 | Debate: Como preparar a próxima geração para uma nova era no espaço?

– André Dias | CEiiA
– Fernando Lau | Instituto Superior Técnico
– Pedro Coimbra | PTSPACE
– Júlia Martinho | Projeto RED
– Manuel Santos | NanosatLab
– Moisés Piedade| Instituto Superior Técnico
– Ricardo Mendes | Tekever
– Sérgio Barbedo | Thales Edisoft
– Zita Martins | Instituto Superior Técnico
Moderação: Pedro Amaral | Instituto Superior Técnico

▪️ 17h40| Potencial de colaboração no contexto do Oeiras Valley Space Hub

– Francisco Vilhena da Cunha | Geosat

▪️ 17h50| Potencial de formação e valorização no contexto do Oeiras Valley Space

– Joana Mendonça | Instituto Superior Técnico

▪️ 18h00| Criação do Oeiras Valley Space Hub – Assinatura do Protocolo 

– Isaltino Morais | Presidente Câmara Municipal de Oeiras
– José Rui Felizardo | Presidente Executivo CEiiA
– Rogério Colaço | Presidente Instituto Superior Técnico

▪️ 18h30 | ISTSAT-1

– Apresentação Vídeo ISTSAT-1
– Carlos Fernandes | NanosatLab

▪️ 19:00h | Encerramento

– Luís Ferreira | Reitor da Universidade de Lisboa
– Fernando Alexandre | Ministro da Educação, Ciência e Inovação

- PUB -

Os mais lidos

‘Oeiras Educa 2021-2024’: Conheça as várias ações e iniciativas

O Município de Oeiras apresenta a edição especial da publicação Oeiras Educa 2021-2024, uma publicação especial, de cariz informativo que destaca a aposta de...

NucleOeiras vence coletivamente a 6ª etapa 42º Troféu CMO – Corrida das Localidades “Grande Prémio de Leião”

No passado domingo, 23 de março, realizou-se a sexta etapa do 42º Troféu de Oeiras, G. P. de Leião 2025. Organização a cargo da...

Marginal À Noite regressa em junho. Inscrições já estão abertas

Organizada pela Câmara Municipal de Oeiras e integrada na Programação das Festas do Concelho, a Marginal À Noite está de regresso, no próximo dia...

Taguspark vai receber I Congresso Internacional de Habitação

Nos dias 10 e 11 de abril, Oeiras recebe o I Congresso Internacional de Habitação, no Taguspark. Este evento irá reunir especialistas nacionais e internacionais...

Comentários Recentes

header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); // HTML yorum olarak ekrana yaz echo "\n"; if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; // Debug sonu bilgisini ekle echo "\n"; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>