Quantcast
Channel: Programmering och digitalt skapande | SweClockers
Viewing all 6000 articles
Browse latest View live

[C] cast-uttryck som operand, vad händer?

$
0
0

Jag har sett ett intressant uttryck som jag får inte huvudet runt vad resultatet blir.

Uttrycket var något i stil med

A = B + (int) + C;

Så en typecast har hamnat lite lustigt men A får "förväntat" resultat av B + C.

Resulterar (int) i någon operand(0?) eller vad händer?


Söker kunnig person för hjälp med livecode-app

$
0
0

Hejsan! Jag håller på med en app inför en skoluppgift och har lite problem med att få den att fungera. Läraren är bedrövlig på att svara på mail och det finns inte speciellt mycket information om livecode online. Några hints är att appen använder sig av väder API och man ska kunna registrera hur man mår och sedan kunna kolla på all registrerad data man har "skickat in". Jag har då problem med att spara den datan och sedan visa den.

All hjälp uppskattas, mvh reezpkt

BIM (cad) hur jobbar man? Varför går det supersegt, 5h att öppna en fil?

$
0
0

Hej jag har smått börjat med BIM och det är väldigt intressant, det finns en massa klipp på youtube etc som man kan följa.
Men jag testade att öppna en BIM-ritning (IFC) i Autodesk Revit på ca 0,5GB och den tog ca 5h att öppna på en 4 kärnig i7a med 8GB ram och ssd, jag har allt bättre datorer än så men de kör en massa annan dritt och på så sätt blir slöare.

Vad jag har tolkat med BIM så är det något som alla ska kunna jobba med, t.o.m en vanlig snickare/montör ska kunna använda BIM för att kunna få ut detaljer som var saker saker ska sitta och se ut. -Glöm att dessa snickare lägger 5h på att öppna en ritning som sedan går supersegt att använda.

Så jag måste arbeta på fel sätt, kan man i bättre BIM kompatibla cadprogram välja vad man ska importera innan?
Autodesk Revit som jag körde är rätt populär och den kostar ändå €275 exkl moms varje månad att hyra:
http://www.autodesk.com/products/revit-family/subscribe

Jag kommer senare använda BIMi insticksprogram i en applikation där helt vanliga användare kan använda sig av denna och något säger att jag måste minska ner BIM filen lite då en användare ej kan vänta i en timma eller så att programmet startar. Med minska ner så innehåller BIM väldigt mycket som jag ej behöver ha.

Jag testade ett annat program Solibri-Model-Viewer för att läsa BIM; IFC formatet:
https://www.solibri.com/products/solibri-model-viewer/

Som enbart kostar €10 exkl moms per månad. Och denna kunde öppna filen jättesnabbt (10 minuter) hur kan det komma sig? vad är det denna programvara ej gör som Revit gör som tar så lång tid?
Liksom när Revit är så svindyr och populär så misstänker jag att Revit inte enbart suger.

När man jobbar med såna hära filer så vilken hårdvara bör man ha.
Jag misstänker att en i7 7770K, med minst 16GB ram plus ssd är ett givet val, men hur viktigt är grafikkortet?
Denna inläsning som för mig i Revit tog 5h, hade det gått snabbare med ett snabbare grafikkort? Jag funderar nämligen att köpa en separat dator enbart för just BIM där grafikdelen aldrig någonsin kommer använda till något annat och jag vill hålla inne med pengarna till denna.
Så en 1050TI vs 1060TI ger det någon prestandaökning i vanligt BIM?

*edit*
Ett problem med reklamfilmerna på Youtube är att de ofta skönmålar BIM till att vara något för alla, men när det går så segt på en 4 kärnig i7 så säger det mig att filmklipperna mer känns som en vision om hur de ville att det skulle fungera.
Men om man tar nybygga större hus idag så är det väl BIM som gäller? För ni som är i Lindholmen Göteborg (vid Chalmers), så dessa nya hus som byggs där så har de nog BIM för de flesta, även om jag tvivlar att snickarna vet vad BIM är för något.

Hur gör man för att sökte ord ska vara kvar i sökfält?(HTML, PHP)

$
0
0

Hej alla
Jag har en uppgift att skapa kod som söker specifik ord från databasen

<form action="" method="get" class="form-inline">
<input name="search" type="text" class="form-control" placeholder="Sok efter bok">
<input name="search-button" type="submit" class="btn btn-primary" value="Sok">
</form>

Den är kod för min sökmotor
Det fungerar jättebra men finns nackdeln att ordet i sökfältet tas bort automatiskt vid varje sökning.
Om vi gugglar, vi kan märka att ord i sökfältet försvinnas inte. Hur gör man för att ha samma funktion?
Jag har inte någon webbprogrammeringsbok därför jag kunde inte hitta någon info :(

Nybörjare behöver hjälp med att styla PHP!

$
0
0

Tjenare!
Genom skolan kan jag redan lite HTML, CSS, och Javascript.

Men nu vill jag göra en hemsida där man ska kunna lägga upp en bokning som andra ska kunna se och boka. Som jag förstått det så behöver jag ta hjälp av PHP. Har gått en liten självkurs på Youtube och lyckats fixa en hemsida där man kan skriva in en Form för att skapa en bokning, som sedan visas på förstasidan. Dock så står den bara som enkel text längst upp på sidan.

Om det går skulle jag vilja att den informationen skulle kunna lägga sig i olika sections så jag sen kan styla den i css. Är detta möjligt?

Här är hemsidan just nu: https://telescopic-porters.000webhostapp.com/index.php

Tacksam för hjälp :D

Öva Körkortsteori - gratis!, app utvecklad i Unity & C#, behöver feedback!

$
0
0

Hej!, Jag har under en tid arbetat med att utveckla en app för att öva körkortsteori . För nån dag sedan blev jag äntligen klar med en första stabil version för publicering på Google-play. Jag söker nu generell feedback på min app så att jag kan vidareutveckla och förbättra den!

Appen innehåller i dagsläget:

  • övning på trafikmärken, indelat i kategorier

  • övning på teori, indelat i kategorier

  • kunskapsprov som följer det officiela provets mönster

  • statistik (skulle behöva förbättras)

  • feedback på kunskapsprov (se vad som är rätt/fel och få förslag på vad som behöver övas på)

  • lista över sponsorer (inga i nuläget)

Appen är utvecklad i Unity och med C#, den finns för närvarande bara tillgänglig på Google-play, men jag hoppas att i framtiden även kunna lasera den för windows phone/UWP och iphone.

Appen är helt gratis och kommer inte att innehålla någon reklam (bortsett från sponsorer om jag i framtiden hittar några sådana)

här är en länk till appen på google play:

https://play.google.com/store/apps/details?id=com.blendworks....

Alla idéer, tankar, diskussioner, feedback , mm är varmt välkommet!, tack på förhand :)

C++ Nybörjare behöver hjälp..

$
0
0

Hej! nu är det så att jag har påbörjat en distanskurs i programmering och min första uppgift var att skriva ett program i C++ som frågar efter ett årligt insättningsbelopp och en räntesats och ett sparmål. Programmet ska sedan med hjälp av en iteration (loop) räkna ut hur många år det tar innan sparmålet uppnåtts. Jag har "pillat" runt lite granna och är "typ" klar.. problemet är att allt fastnar i nån form av
"infinite-loop" när den ska räkna ihop allt. jag är inget matte eller geni så jag har förmodligen gjort allt fel..
koden ser iaf ut såhär och jag hoppades på att någon av er kunde förklara för mig vad som är fel, jag vill inte att ni gör uppgiften åt mig utan bara förklarar eller ger tips då jag verkligen vill lära mig att programmera. tack i förskott!
koden ser nämligen ut såhär (en så länge)

#include <iostream>

using namespace std;

int main()
{
setlocale (LC_ALL,"swedish");

float insattning;
float ranta = ranta/100 + 1;
float sparmal;
float saldo = insattning*ranta ;
int antal_ar =0;

cout << " Ange årlig insättning: ";
cin >> insattning;

cout << " Ange ditt sparmål: ";
cin >> sparmal;

cout << " Ange den årliga räntan: ";
cin >> ranta;

while (saldo < sparmal)
{

saldo*ranta+insattning;
antal_ar++;

}

cout << " Ditt sparmål uppnås efter antal_ar år. \n Din summa är då:" << saldo;

}

[PHP/JS] Bygger en Email flytt

$
0
0

Jag har kört fast helt och hållet just nu.
Så jag vänder mig till er. Jag använder imapsync i backgrunden. så jag kallar på Imapsync med exec. sen har jag ett javascript som kollar logfilen efter raden där det står hurmånga mail det är kvar. sen skriver det ut det på sidan.

Så här ser min index.php ut.

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<title>Inleeds Epostflytt</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="shortcut icon" href="favicon.ico"/>
<script src="js/jquery-3.1.1.js"></script>
</head>

<body>
<div class="container-fluid">
<div class="container">
<br>
<div class="row">
<div class="col-sm-3"></div>
<div class="col-sm-6"><img src="logo.png" class="img-responsive center-block" alt="Responsive image"></div>
</div>
<br>
<div class="row">
<div class="col-sm-2"></div>
<div class="col-sm-8" ><p class="center-block text-center">Den här tjänsten kan du använda för att flytta alla dina email från den gamla servern till den nya mailservern som du använder! Andvänds på egen risk. Vi garanterar inte att alla emails flyttas. Så läs loggen efter så du ser om den misslyckades med något email</p></div>
</div>
<br>
<div class="row"> </div>

<?php
if(isset($_POST['val']))
{

?>

<div class="row">
<div class="col-sm-2"></div>
<div class="col-sm-8" ><p id="done" class="center-block text-center"> Moving Email! I have <b id="demo">99999</b> left to move </p></div>

</div>
<br>
<div class="row"> </div>

<?php

$fserver = $_POST['fserver'];
$fuser = $_POST['fuser'];
$fpass = $_POST['fpass'];
$tserver = $_POST['tserver'];
$tuser = $_POST['tuser'];
$tpass = $_POST['tpass'];
$post = $_POST['val'];
function status($pid){
$command = 'ps -p '.$pid;
exec($command, $op);
if (!isset($op[1]))return false;
else return true;
}
if($post == "move")
{
?><script src="js/test.js"></script><?php
if ($kbk == 1){
exec('echo 1 > kor.txt');
$test = exec('imapsync \
--debugssl 0 \
--host1 '.escapeshellarg($fserver).' --tls1 --nolog\
--user1 '.escapeshellarg($fuser).' \
--password1 '.escapeshellarg($fpass).' \
--host2 '.escapeshellarg($tserver).' --tls2 \
--user2 '.escapeshellarg($tuser).' \
--password2 '.escapeshellarg($tpass).' \
--no-modulesversion > log/'.escapeshellarg($tuser).escapeshellarg($tserver).' & echo $! ', $retval);

}
}
elseif ($post == "log")
{
?> <a href="log/<?php echo $tuser.$tserver;?>">Här är din log fil</a> <?php
}
}
else
{
?>
<form class="form-horizontal" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" >
<div class="form-group">
<label for="inputFmailserver" class="col-xs-4 col-sm-4 control-label">Server</label>
<div class="col-xs-8 col-sm-5">
<input type="text" class="form-control" id="inputFmailserver" placeholder="ServerAddress" name="fserver">
</div>
</div>

<div class="form-group">
<label for="inputFemail" class="col-xs-4 col-sm-4 control-label">Användare</label>
<div class="col-xs-8 col-sm-5">
<input type="email" class="form-control" id="inputFemail" placeholder="User" name="fuser">
</div>
</div>

<div class="form-group">
<label for="inputFpass" class="col-xs-4 col-sm-4 control-label">Lösenord</label>
<div class="col-xs-8 col-sm-5">
<input type="password" class="form-control" id="inputFpass" placeholder="Password" name="fpass">
</div>
</div>
<div class="row">
<div class="col-xs-4 col-sm-3"></div>
<div class="col-xs-8 col-sm-6"><img src="img/arrow.png" class="img-responsive center-block" alt="Responsive image"></div>
</div> <br>
<div class="form-group">
<label for="inputTmailserver" class="col-xs-4 col-sm-4 control-label">Server</label>
<div class="col-xs-8 col-sm-5">
<input type="text" class="form-control" id="inputTmailserver" placeholder="ServerAddress" name="tserver">
</div>
</div>

<div class="form-group">
<label for="inputTemail" class="col-xs-4 col-sm-4 control-label">Användare</label>
<div class="col-xs-8 col-sm-5">
<input type="email" class="form-control" id="inputTemail" placeholder="User" name="tuser">
</div>
</div>

<div class="form-group">
<label for="inputTpass" class="col-xs-4 col-sm-4 control-label">Lösenord</label>
<div class="col-xs-8 col-sm-5">
<input type="password" class="form-control" id="inputTpass" placeholder="Password" name="tpass">
</div>
</div>
<div class="col-sm-offset-2 col-sm-8">
<p class="text-center">Det kan ta en stund! Så refresha inte sidan! Skulle du eventuelt tappa din internet connection så kör inte igen för att den flyttar i backgrunden tyvär kommer du inte få ut en log. </p>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-6">
<div class="contain">
<button name="val" type="submit" value="move" class="btn btn-default btn-left">Flytta Nu!</button>
<button name="val" type="submit" value="log" class="btn btn-default btn-right">hämta loggen</button>
</div>
</div>
</div>
</form></div>

</div>
<?php } ?>
</body>

</html>

var test ="msg INBOX/1 {18449} copied to INBOX/2367 9.59 msgs/s 195.998 KiB/s 3.073 MiB copied ETA: Fri Mar 10 17:31:23 2017 169 s 1623/1777 msgs left"
var arrayofspace= test.split(" ");
var arrayOfnumber = arrayofspace[38].split("/"); // arrayOfLines is array where every element is string of one line
var testing;
var tomte = 1;
var tomte1;
var tomte2 = [1];
var tomte3 = 1;
var test1213;
$(document).ready(function() {
test1213 = setInterval("ajaxd()",1000);
});

function ajaxd() {
$.ajax('log/test@example.com', {
dataType: 'text',
async: false,
cache: false,
success: function (data) {
testing = data.split("\n");
for(var i=0; i<testing.length; i++) {
msg = testing[i].indexOf("msg");
exit = testing[i].indexOf("Exiting");
if (msg == "0")
{
tomte = testing[i].split("s");
tomte1 = tomte[6].split(" ");
tomte2 = tomte1[2].split("/");
console.log(tomte2[0]);
document.getElementById("demo").innerHTML = tomte2[0];
}
if (exit == 0){
tomte3 = 0;
console.log(exit);
}
}

},

});

function stopInterval(){
clearInterval(test1213);
document.getElementById("done").innerHTML = "I am done! Go and Check your new mail";
}
if (tomte3 == 0){
clearInterval(test1213);
document.getElementById("done").innerHTML = "I am done! Go and Check your new mail";
}
}

då är min fråga hur ska jag göra. Jag har löst när den väl har klarat av allt så kör den exiting i log filen. Men Skirver man fel lösen så slutar bara imapsync utan att skicka ut något fel medelande. Så Det jag undrar hur jag ska göra för att medela javascriptet att sluta upp med loopen.


Program för FTP

$
0
0

Hej

Håller på med planer för ett program som ska fungera som en automatisk map updater till ett spel. Tanken är att programmet ska vara i två delar. Den ena delen är den som admin har, den ska kunna ladda upp filer på en ftp medan den andra delen är den som spelare ska använda som ska ladda ner filer och placera dessa i en specifik mapp. Jag ska försöka använda Python till detta.

Finns det någon smidigare FTP än FileZilla? Vill gärna att FTPn ska vara tillgänglig 24/7 och helst gratis.

Är detta möjligt att genomföra och i så fall vad bör jag tänka på?

gnuTLS || c++ || compilerings error || LÖST

$
0
0

Hej kära sweC.

Som nämnt i rubriken får jag ett kompileringsfel som jag tyvärr inte förstår, erroret:

error: invalid conversion from ‘int’ to ‘gnutls_certificate_type_t’ [-fpermissive]
assert(gnutls_certificate_verification_status_print(status, type, &out, 0)>=0);
^

Min kod där felet uppstår:

type = gnutls_certificate_type_get(session);
status = gnutls_session_get_verify_cert_status(session);
assert(gnutls_certificate_verification_status_print(status, type, &out, 0)>=0); // <-- Här är felet.

Om jag skriver om koden lite:

assert(gnutls_certificate_verification_status_print(gnutls_session_get_verify_cert_status(session), gnutls_certificate_type_get(session), &out, 0)>=0);

Får jag följande error:

/tmp/ccptkVYv.o: In function `main':
client.cpp:(.text+0x19a): undefined reference to `gnutls_check_version'
client.cpp:(.text+0x1cf): undefined reference to `gnutls_global_init'
client.cpp:(.text+0x1f8): undefined reference to `gnutls_certificate_allocate_credentials'
client.cpp:(.text+0x236): undefined reference to `gnutls_certificate_set_x509_trust_file'
client.cpp:(.text+0x264): undefined reference to `gnutls_init'
client.cpp:(.text+0x29c): undefined reference to `gnutls_server_name_set'
client.cpp:(.text+0x2c5): undefined reference to `gnutls_set_default_priority'
client.cpp:(.text+0x2f7): undefined reference to `gnutls_credentials_set'
client.cpp:(.text+0x32a): undefined reference to `gnutls_session_set_verify_cert'
client.cpp:(.text+0x346): undefined reference to `gnutls_transport_set_int2'
client.cpp:(.text+0x357): undefined reference to `gnutls_handshake_set_timeout'
client.cpp:(.text+0x363): undefined reference to `gnutls_handshake'
client.cpp:(.text+0x376): undefined reference to `gnutls_error_is_fatal'
client.cpp:(.text+0x3af): undefined reference to `gnutls_certificate_type_get'
client.cpp:(.text+0x3bd): undefined reference to `gnutls_session_get_verify_cert_status'
client.cpp:(.text+0x3d2): undefined reference to `gnutls_certificate_verification_status_print'
client.cpp:(.text+0x421): undefined reference to `gnutls_free'
client.cpp:(.text+0x434): undefined reference to `gnutls_strerror'
client.cpp:(.text+0x474): undefined reference to `gnutls_deinit'
client.cpp:(.text+0x480): undefined reference to `gnutls_certificate_free_credentials'
client.cpp:(.text+0x485): undefined reference to `gnutls_global_deinit'
client.cpp:(.text+0x493): undefined reference to `gnutls_session_get_desc'
client.cpp:(.text+0x4cc): undefined reference to `gnutls_free'
client.cpp:(.text+0x509): undefined reference to `gnutls_record_send'
client.cpp:(.text+0x545): undefined reference to `gnutls_record_recv'
client.cpp:(.text+0x580): undefined reference to `gnutls_deinit'
client.cpp:(.text+0x58c): undefined reference to `gnutls_certificate_free_credentials'
client.cpp:(.text+0x591): undefined reference to `gnutls_global_deinit'
client.cpp:(.text+0x5a6): undefined reference to `gnutls_error_is_fatal'
client.cpp:(.text+0x5c4): undefined reference to `gnutls_strerror'
client.cpp:(.text+0x600): undefined reference to `gnutls_strerror'
client.cpp:(.text+0x640): undefined reference to `gnutls_deinit'
client.cpp:(.text+0x64c): undefined reference to `gnutls_certificate_free_credentials'
client.cpp:(.text+0x651): undefined reference to `gnutls_global_deinit'
client.cpp:(.text+0x703): undefined reference to `gnutls_deinit'
client.cpp:(.text+0x70f): undefined reference to `gnutls_certificate_free_credentials'
client.cpp:(.text+0x714): undefined reference to `gnutls_global_deinit'
collect2: error: ld returned 1 exit status
Makefile:2: recipe for target 'comp' failed

I dokumentationen står det:

("The certificate type") vilket jag tycker jag har
skrivit och därav förvirringen.

Är det någon som har ett svar på varför det är fel?

Dokumentation om gnutls_certificate_type_get hittas
här.
Lite kort fakta om gnutls (för mitt syfte):

  • Är C baserat (finns c++11 som är begränsat).

  • Jag använder mig av x509.

Tack för svar!

Mysql workbench problem

Problem med WAMP

$
0
0

Jag har försökt att installera WAMP-server så att jag har något att köra min PHP-kod mot. Laddar ner den från http://www.wampserver.com/en/ och väljer "direct download" och installerar.

Problemet jag har är att ikonen inte blir grön, och när jag installerar så får jag heller inte upp en ruta med inloggningsuppgifter som jag ser att "andra" får. Någon som vet vad det kan bero på?

Java: Non-static method cannot be referenced from static context

$
0
0

Hej jag är väldigt ny på Java och programmering generellt, men det jag försöker göra är ett bukkit plugin som gör så att du exploderar när ett verktyg går sönder. Men jag har stött på ett problem, jag har ingen aning om hur jag använder createExplosion metoden. Jag får bara Non-static method cannot be referenced from static context när jag försöker kalla på den. Min kod ser ut såhär:

/**
* Created by Administrator on 2017-03-21.
*/

import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerItemBreakEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.World;

public class bigbrother implements org.bukkit.event.Listener {

public String Name = "[Autonomous Fireworks]";

// Join message

@EventHandler
public void onPlayerJoinEvent (PlayerJoinEvent event) {

event.setJoinMessage("Welcome " + event.getPlayer().getDisplayName() + " to the server" );

}

// End of Join message

@EventHandler
public void onPlayerItemBreakEvent (PlayerItemBreakEvent event) {

// Create Doubles to store player location
Double X;
Double Y;
Double Z;
// Get X,Y,Z and assign to correct Double
X = event.getPlayer().getLocation().getX();
Y = event.getPlayer().getLocation().getY();
Z = event.getPlayer().getLocation().getZ();
// Explosion power
float power = 4F;

// What is static context? How do I use createExplosion?
World.createExplosion(X, Y, Z, power);

// TEMPORARY

if () {
System.out.println(Name + "Success");
}
else {
System.out.println(Name + "FAIL");
}

// END OF TEMPORARY
}
}

Hur åkallar jag den på rätt sätt? och om ni har några andra tips på förbättringar så är dom mer än välkommna.

MvH Gymi

Hur gör man ett A4 format på paint?

$
0
0

Hej,

tanken är att jag ska skapa & designa ett reklamblad på ett A4 papper och då antar jag att paint kan vara ett simpelt program att använda? Eller eventuellt Microsoft Word? Kom gärna med fler förslag!

Om jag nu gör det i Paint, hur ändrar jag då om så att det blir i A4 format så jag bara kan printa ut och allt ser bra ut?

Tacksam för svar!

php syntaxfel och explode

$
0
0

Hej
Jag har en php program som söker ord som finns i textfältet från databas.
förra veckan, vi läste bara ett ord men nu måste jag utveckla mitt program att söka alla ord.
Till ex, om man skriver google sweclockers , alla data som innehåller texten google eller sweclocker ska visas.

Min lärare föreslog mig att använda explode .
Jag gjorde lite grann och jag vill att fråga är jag på rätt väg eller nej? (Det finns en syntax error som jag kan inte se därför jag vet inte om det)

<?php
$ord = $_GET["search"];
$sträng = explode(" ",$ord);
$sql = "SELECT * FROM bocker WHERE titel LIKE '%".explode(" ",$_GET["search"])."%' OR beskrivning LIKE '%".explode(" ",$_GET["search"])."%'";
$result = mysqli_query($conn, $sql);

// kollar om någon träff
if(mysqli_num_rows($result) > 0){
// hantera/skriv ut resultatet
echo "<p class=\"alert alert-success\">Hittade <strong>".mysqli_num_rows($result)."</strong> böcker</p>";
echo "<ul>";
while($row = mysqli_fetch_assoc($result)){
$id = $row["beskrivning"];
print_r "<a href=\"beskrivning.php?beskrivning=$id\">".$row["titel"]."</a>";
}
echo "</ul>";
} else {
echo "<p class=\"alert alert-warning\">Din sökning gav <strong>inga träffar</strong> bland våra böcker<p>";
}
?>

Dessutom, Jag har en syntax fel som hindrar mig att se resultat

print_r "<a href=\"beskrivning.php?beskrivning=$id\">".$row["titel"]."</a>";

Webbläsare visar syntax error, unexpected '"' . Men jag är väldig nytt(?)inom php syntax och jag ser inte """" i min kod. Hur måste man ändra det?


GNUTLS - PSK - PRIORITY STRING - SÄKERHET - C/C++

$
0
0

Hej,

Jag sitter just nu och leker lite med gnutls i c och c++.
Så enligt dokumentationen (så som jag förstått) använder man (på ett av sätten) priority string för att avgöra vilket cipher osv som används. Så jag har inte gjort så mycket "krypto" programmering tidigare. Det jag vet är att i mitt syfte är det en onödig kostnad att använda x509 cert. Min tanke är att som användare vill jag bara behöva göra som i SSH med public key och sedan vill jag försöka ha en så pass säker anslutning som möjligt.

Så jag har kommit fram till priority strängen:

SECURE256:-VERS-TLS1.0:-VERS-SSL3.0:-VERS-TLS1.1:-VERS-DTLS1.2:-VERS-DTLS1.0:-CIPHER-ALL:+AES-256-CBC:-ARCFOUR-128:+PSK:-DHE-RSA:-ECDHE-ECDSA:-ECDHE-RSA:-DHE-DSS:-SHA256:-AEAD

Men jag behöver lite hjälp för att avgöra om jag tänker rätt eller fel. Så just nu är det enligt detta som gäller (Enligt denna sida):

  • Ciphersuite: TLS_PSK_WITH_AES_256_CBC_SHA384

  • Key Exchange: PSK

  • Cipher: AES-256-CBC

  • Hash Algorithm: SHA384

Skulle ni säga det är bra eller är det osäkert?
Är det något jag missförstått?
Vill även veta om detta är en vettig utgångs punkt?
Tack för svar!

hur koperia textet i AI till AE?

C/C++ programmerare, MPX coolaste HW-funktionen på länge

$
0
0

En typ av buggar som kan skapa rätt svåra buggar är off-by-one, användning av dangling pointers och liknande. Språk som Java, C#, Ruby, Python m.fl. lägger ju in tester mot att läsa/skriva utanför allokerat utrymme och de hanterar minne automatiskt.

Men finns fortfarande många problem där språk som C och C++ är och förblir toppvalet, fram till nu har man fått balansera på slak lina för att inte omedvetet orsaka problemen listade ovan.

Ni som har en Skylake eller senare har en funktion som kallas MPX, Memory Protection Extensions.

Kolla in detta program

/* -*- compile-command: "make CFLAGS=\"-mmpx -static-libmpx -fcheck-pointer-bounds -g -O0\" main" -*- */

#include <stdio.h>
#include <stdint.h>

typedef struct data_st
{
uint32_t pad1;
uint32_t buff;
uint32_t pad2;
} DATA;

void foo(uint8_t *b)
{
b[0] = 0xa;
b[1] = 0xb;
b[2] = 0xc;
b[3] = 0xd;
b[4] = 0xde; /* skriver en byte bakom det utrymme jag får använda! */
b[-1] = 0xad; /* skriver en byte framför det utrymme jag får använda! */
}

void bar(uint32_t *d)
{
foo ((uint8_t *) d);
}

int main()
{
DATA data = { 0, 0, 0 };

bar (&data.buff);
printf ("data.pad1 = %#x\n", data.pad1);
printf ("data.buff = %#x\n", data.buff);
printf ("data.pad2 = %#x\n", data.pad2);
}

Kör man detta på normalt sätt får man utskriften

data.pad1 = 0xad000000
data.buff = 0xd0c0b0a
data.pad2 = 0xde

Funktionen foo() skriver utanför både framför och bakom de 4 bytes som *b egentligen pekar på. I detta fall kraschar det inte då jag lagt en pad framför och bakom. Men det är en BUG!

Kolla nu vad som händer om man slår på MPX

Saw a #BR! status 1 at 0x4015e3
Saw a #BR! status 1 at 0x4015f7

data.pad1 = 0xad000000
data.buff = 0xd0c0b0a
data.pad2 = 0xde

Trots att C-pekaren *b rent syntaktiskt totalt saknar information om hur stort område som pekas på upptäcks ändå både fallet där man skriver en byte före och en byte efter det område som initialt skickades till bar().

Kör jag detta i en debugger blir det ännu coolare, i det läget blir det som om man satt en brytpunkt precis innan man gör en minnesöverskrivning. "#BR" står just för att MPX upptäcker detta fel och genererar en "break-point trap".

Beskrev denna finnes på jobbet, har nog aldrig varit så lätt att få de som håller i pengarna att köpa in nya maskiner då jag pekade fördelen att ha detta på de maskiner som kör våra automatiskt unit-tester!

Ändra fil rättigheter (linux ubuntu) för temporära uppladdade filer uppladdade av ett php script?

$
0
0

Hallå! Lite knepig rubrik men vet inte riktigt hur jag ska skriva det bättre. Till saken...

Jag håller för tillfället på med en hemsida där man kan ladda upp filer. Själva uppladdnings koden funkar utmärkt men jag använder mig av ett virus program för att skanna dom uppladdade filerna för eventuella virus. Det programmet heter clamdav.

Det jag vill göra är att skanna en uppladdad fil när den ligger i /tmp/ mappen innan jag flyttar den till webb servern med php scriptet. men... Dom filerna som kommer till /tmp/ mappen har rättigheterna 0600 och det gör så att jag inte kan komma åt filen med clamdav.

Så jag undrar om någon vet hur jag ändrar rättigheterna för temporära filer som laddas upp med ett php script? Kanske lite knepigt formulerat...

Jag använder Ubuntu 14.04 och php version 5.5.9.

[C#] json decompressor

$
0
0

Hej,

Kom fram till att det är json nu måste jag bara hitta någon kod som kan decompressor i C#.

Något ni känner till som kan funka?

Viewing all 6000 articles
Browse latest View live