Recherche avancée

Médias (1)

Mot : - Tags -/pirate bay

Autres articles (106)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Pas question de marché, de cloud etc...

    10 avril 2011

    Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
    sur le web 2.0 et dans les entreprises qui en vivent.
    Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
    Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
    le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
    Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)

Sur d’autres sites (12864)

  • Flutter ffmpeg_kit_flutter_new can't build Android app in any version

    3 juillet, par user31929

    I can't build my project on Android ( on Ios it works and the project itself without ffmpeg_kit_flutter_new builds without problems )
This is the error i obtain :

    


    /GeneratedPluginRegistrant.java:51: error: cannot find symbol
      com.antonkarpenko.ffmpegkit.MainActivity.registerWith(shimPluginRegistry.registrarFor("com.antonkarpenko.ffmpegkit.MainActivity"));
                                 ^
  symbol:   class MainActivity
  location: package com.antonkarpenko.ffmpegkit


    


    This is my flutter doctor :

    


    [✓] Flutter (Channel stable, 3.19.4, on macOS 15.4.1 24E263 darwin-x64, locale it-IT)
    • Flutter version 3.19.4 on channel stable at ….
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 68bfaea224 (1 year, 2 months ago), 2024-03-20 15:36:31 -0700
    • Engine revision a5c24f538d
    • Dart version 3.3.2
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at …..
    • Platform android-35, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16E140
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.99.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.110.0

[✓] Connected device (5 available)
    • SM A135F (mobile)              • RF8T40TMS6Z               • android-arm    • Android 12 (API 31)
    • cri SE 128 (mobile)      • 00008030-001268303E38402E • ios            • iOS 18.4.1 22E252
    • iPhone di WacMini (mobile) • 00008030-00121D543CE8802E • ios            • iOS 18.4.1 22E252
    • macOS (desktop)                • macos                     • darwin-x64     • macOS 15.4.1 24E263 darwin-x64
    • Chrome (web)                   • chrome                    • web-javascript • Google Chrome 136.0.7103.93

[✓] Network resources
    • All expected network resources are available.


    


    My android/app/build.gradle

    


    def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'org.jetbrains.kotlin.android'


android {

    compileSdkVersion 35

    namespace = "com.app.app"
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        applicationId "com.appid.appid"
        minSdkVersion 24
        targetSdkVersion 35
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
       
        // insert this line of code in order to manage correct build abi configuration only on supported devices not supported tablet device emulator
       /* ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
        }*/
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        debug {
            debuggable true
        }

        release {
            signingConfig signingConfigs.release
            debuggable false
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.24"
}


    


    My android/build.gradle

    


    buildscript {
    ext.kotlin_version = '1.9.24'
    repositories {
        google()
        mavenCentral()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:8.4.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.14'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }

    
    subprojects {
        tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
            kotlinOptions.jvmTarget = "1.8"
        }
        afterEvaluate { project ->
            if (project.hasProperty('android')) {
                project.android {
                    if (namespace == null) {
                        namespace project.group
                    }
                }
            }
        }
    }
    
}


ext {
    flutterFFmpegPackage = "min-gpl-lts"
}


rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}


    


    My gradle.wrapper.properties

    


    distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip


    


    What i have already tried :

    


      

    • flutter clean/flutter pub get
    • 


    • remove .gradle folder/flutter clean/flutter pub get
    • 


    • remove GeneratedPluginRegistrant.java file then remove .gradle/flutter clean/flutter pub get
    • 


    


    I have this issue in every version of the plugin. There is something wrong in my configurations or maybe this is a plugin issue ?

    


  • Subtitling Sierra RBT Files

    2 juin 2016, par Multimedia Mike — Game Hacking

    This is part 2 of the adventure started in my Subtitling Sierra VMD Files post. After I completed the VMD subtitling, The Translator discovered a wealth of animation files in a format called RBT (this apparently stands for “Robot” but I think “Ribbit” format could be more fun). What are we going to do ? We had come so far by solving the VMD subtitling problem for Phantasmagoria. It would be a shame if the effort ground to a halt due to this.

    Fortunately, the folks behind the ScummVM project already figured out enough of the format to be able to decode the RBT files in Phantasmagoria.

    In the end, I was successful in creating a completely standalone tool that can take a Robot file and a subtitle file and create a new Robot file with subtitles. The source code is here (subtitle-rbt.c). Here’s what the final result looks like :


    Spanish refrigerator
    “What’s in the refrigerator ?” I should note at this juncture that I am not sure if this particular Robot file even has sound or dialogue since I was conducting these experiments on a computer with non-working audio.

    The RBT Format
    I have created a new MultimediaWiki page describing the Robot Animation format based on the ScummVM source code. I have not worked with a format quite like this before. These are paletted animations which consist of a sequence of independent frames that are designed to be overlaid on top of static background. Because of these characteristics, each frame encodes its own unique dimensions and origin coordinate within the frame. While the Phantasmagoria VMD files are usually 288×144 (which are usually double-sized for the benefit of a 640×400 Super VGA canvas), these frames are meant to be plotted on a game field that was roughly 576×288 (288×144 doublesized).

    For example, 2 minimalist animation frames from a desk investigation Robot file :


    Robot Animation Frame #1
    100×147

    Robot Animation Frame #2
    101×149

    As for compression, my first impression was that the algorithm was the same as VMD. This is wrong. It evidently uses an unmodified version of a standard algorithm called Lempel-Ziv-Stac (LZS). It shows up in several RFCs and was apparently used in MS-DOS’s transparent disk compression scheme.

    Approach
    Thankfully, many of the lessons I learned from the previous project are applicable to this project, including : subtitle library interfacing, subtitling in the paletted colorspace, and replacing encoded frames from the original file instead of trying to create a new file.

    Here is the pitch for this project :

    • Create a C program that can traverse through an input file, piece by piece, and generate an output file. The result of this should be a bitwise identical file.
    • Adapt the LZS compression decoding algorithm from ScummVM into the new tool. Make the tool dump raw Portable NetMap (PNM) files of varying dimensions and ensure that they look correct.
    • Compress using LZS.
    • Stretch the frames and draw subtitles.
    • More compression. Find the minimum window for each frame.

    Compression
    Normally, my first goal is to decompress the video and store the data in a raw form. However, this turned out to be mathematically intractable. While the format does support both compressed and uncompressed frames (even though ScummVM indicates that the uncompressed path is yet unexercised), the goal of this project requires making the frames so large that they overflow certain parameters of the file.

    A Robot file has a sequence of frames and 2 tables describing the size of each frame. One table describes the entire frame size (audio + video) while the second table describes just the video frame size. Since these tables only use 16 bits to specify a size, the maximum frame size is 65536 bytes. Leaving space for the audio portion of the frame, this only leaves a per-frame byte budget of about 63000 bytes for the video. Expanding the frame to 576×288 (165,888 pixels) would overflow this limit.

    Anyway, the upshot is that I needed to compress the data up front.

    Fortunately, the LZS compressor is pretty straightforward, at least if you have experience writing VLC-oriented codecs. While the algorithm revolves around back references, my approach was to essentially write an RLE encoder. My compressor would search for runs of data (plentiful when I started to stretch the frame for subtitling purposes). When a run length of n=3 or more of the same pixel is found, encode the pixel by itself, and then store a back reference of offset -1 and length (n-1). It took a little while to iron out a few problems, but I eventually got it to work perfectly.

    I have to say, however, that the format is a little bit weird in how it codes very large numbers. The length encoding is somewhat Golomb-like, i.e., smaller values are encoded with fewer bits. However, when it gets to large numbers, it starts encoding counts of 15 as blocks of 1111. For example, 24 is bigger than 7. Thus, emit 1111 into the bitstream and subtract 8 from 23 -> 16. Still bigger than 15, so stuff another 1111 into the bitstream and subtract 15. Now we’re at 1, so stuff 0001. So 24 is 11111111 0001. 12 bits is not too horrible. But the total number of bytes (value / 30). So a value of 300 takes around 10 bytes (80 bits) to encode.

    Palette Slices
    As in the VMD subtitling project, I took the subtitle color offered in the subtitle spec file as a suggestion and used Euclidean distance to match to the closest available color in the palette. One problem, however, is that the palette is a lot smaller in these animations. According to my notes, for the set of animations I scanned, only about 80 colors were specified, starting at palette index 55. I hypothesize that different slices of the palette are reserved for different uses. E.g., animation, background, and user interface. Thus, there is a smaller number of colors to draw upon for subtitling purposes.

    Scaling
    One bit of residual weirdness in this format is the presence of a per-frame scale factor. While most frames set this to 100 (100% scale), I have observed 70%, 80%, and 90%. ScummVM is a bit unsure about how to handle these, so I am as well. However, I eventually realized I didn’t really need to care, at least not when decoding and re-encoding the frame. Just preserve the scale factor. I intend to modify the tool further to take scale factor into account when creating the subtitle.

    The Final Resolution
    Right around the time that I was composing this post, The Translator emailed me and notified me that he had found a better way to subtitle the Robot files by modifying the scripts, rendering my entire approach moot. The result is much cleaner :


    Proper RBT Subtitles
    Turns out that the engine supported subtitles all along

    It’s a good thing that I enjoyed the challenge or I might be annoyed at this point.

    See Also

  • What is last click attribution ? A beginner’s guide

    10 mars 2024, par Erin

    Imagine you just finished a successful marketing campaign. You reached new highs in campaign revenue. Your conversion was higher than ever. And you did it without dramatically increasing your marketing budget.

    So, you start planning your next campaign with a bigger budget.

    But what do you do ? Where do you invest the extra money ?

    You used several marketing tactics and channels in the last campaign. To solve this problem, you need to track marketing attribution — where you give conversion credit to a channel (or channels) that acted as a touchpoint along the buyer’s journey.

    One of the most popular attribution models is last click attribution.

    In this article, we’ll break down what last click attribution is, its advantages and disadvantages, and examples of how you can use it to gain insights into the marketing strategies driving your growth.

    What is last click attribution ?

    Last click, or last interaction, is a marketing attribution model that seeks to give all credit for a conversion to the final touchpoint in the buyer’s journey. It assumes the customer’s last interaction with your brand (before the sale) was the most influential marketing channel for the conversion decision.

    What is last click attribution?

    Example of last click attribution

    Let’s say a woman named Jill stumbles across a fitness equipment website through an Instagram ad. She explores the website, looking at a few fitness bands and equipment, but she doesn’t buy anything.

    A few days later, Jill was doing a workout but wished she had equipment to use.

    So, she Googles the name of the company she checked out earlier to take a look at the fitness bands it offers. She’s not sure which one to get, but she signs up for a 10% discount by entering her email.

    A few days later, she sees an ad on Facebook and visits the site but exits before purchasing. 

    The next day, Jill gets an email from the store stating that her discount code is expiring. She clicks on the link, plugs in the discount code, and buys a fitness band for $49.99.

    Under the last click attribution model, the fitness company would attribute full credit for the sale to their email campaign while ignoring all other touchpoints (the Instagram ad, Jill’s organic Google search, and the Facebook ad).

    3 advantages of last click attribution

    Last click attribution is one of the most popular methods to credit a conversion. Here are the primary advantages of using it to measure your marketing efforts :

    Advantages of Last Click Attribution

    1. Easiest attribution method for beginners

    If something’s too complicated, many people simply won’t touch it.

    So, when you start diving into attribution, you might want to keep it simple. Fortunately, last click attribution is a wonderful method for beginner marketers to try out. And when you first begin tracking your marketing efforts, it’s one of the easiest methods to grasp. 

    2. It can have more impact on revenue

    Attribution and conversions go hand in hand. But conversions aren’t just about making a sale or generating more revenue. We often need to track the conversions that take place before a sale.

    This could include gaining a new follower on Instagram or capturing an email subscriber with a new lead magnet.

    If you’re trying to attribute why someone converted into a follower or lead, you may want to ditch last click for something else.

    But when you’re looking strictly at revenue-generating conversions, last click can be one of the most impactful methods for giving credit to a conversion.

    3. It helps you understand bottom-of-funnel conversions

    If SEO is your focus, chances are pretty good that you aren’t looking for a direct sale right out of the gate. You likely want to build your authority, inform and educate your audience, and then maybe turn them into a lead.

    However, when your primary focus isn’t generating traffic or leads but turning your leads into customers, then you’re focused on the bottom of your sales funnel.

    Last click can be helpful to use in bottom-of-funnel (BoFu) conversions since it often means following a paid ad or sales email that allows you to convert your warm audience member.

    If you’re strictly after revenue, you may not need to pay as much attention to the person who reads your latest blog post. After they read the article, they may have seen a social media post. And then, maybe they saw your email with a discount to buy now — which converted them into a paying customer.

    3 challenges of last click attribution

    Last click attribution is a simple way to start analysing the channels that impact your conversions. But it’s not perfect.

    Here are a few challenges of last click attribution you should keep in mind :

    Challenges of last click attribution.

    1. It ignores all other touchpoints

    Last click attribution is a single-touch attribution model. This type of model declares that a single channel gets 100% of the credit for a sale.

    But this can overlook impactful contributions from other channels.

    Multi-touch attribution seeks to give credit to multiple channels for each conversion. This is a more holistic approach.

    2. It fragments the customer journey

    Most customers need a few touchpoints before they’ll make a purchase.

    Maybe it’s reading a blog post via Google, checking out a social media post on Instagram, and receiving a nurture email.

    If you look only at the last touchpoint before a sale, then you ignore the impact of the other channels. This leads to a fragmented customer journey. 

    Imagine this : You tell your marketing leaders that Facebook ads are responsible for your success because they were the last touch for 65% of conversions. So, you pour your entire budget into Facebook ads.

    What happens ?

    Your sales drop by 60% in one month. This happens because you ignored the traffic you were generating from SEO blog posts that led to that conversion — the nurturing that took place in email marketing.

    3. Say goodbye to brand awareness marketing

    Without a brand, you can’t have a sustainable business.

    Some marketing activities, like brand awareness campaigns, are meant to fuel brand awareness to build a business that lasts for years.

    But if you’re going to use last click attribution to measure the effectiveness of your marketing efforts, then you’re going to diminish the impact of brand awareness.

    Your brand, as a whole, has the ability to generate multiples of your current revenue by simply reaching more people and creating unique brand experiences with new audiences.

    Last click attribution can’t easily measure brand awareness activities, which means their importance is often ignored.

    Last click attribution vs. other attribution models

    Last click attribution is just one type of attribution model. Here are five other common marketing attribution models you might want to consider :

    Image of six different attribution models

    First interaction

    We’ve already touched on last click interaction as a marketing attribution model. But one of the most common models does the opposite.

    First interaction, or first touch, gives full credit to the first channel that brought a lead in. 

    First interaction is best used for top-of-funnel (ToFU) conversions, like user acquisition.

    Last non-direct interaction

    A similar model to last click attribution is one called last non-direct interaction. But one major difference is that it excludes all direct traffic from the calculation. Instead, it assigns full conversion credit to the channel that precedes it.

    For instance, let’s say you see someone comes to your website via a Facebook ad but doesn’t purchase. Then one week later, they go directly to your website through a bookmark they saved and they complete a purchase. Instead of giving attribution to the direct traffic touchpoint (entering your site through a saved bookmark), you attribute the conversion to the previous channel.

    In this case, the Facebook ad gets the credit.

    Last non-direct attribution is best used for BoFu conversions.

    Linear

    Another common attribution model is called linear attribution. Here, you split the credit for a conversion equally across every single touchpoint.

    This means if someone clicks on your blog post in Google, TikTok post, email, and a Facebook ad, then the credit for the conversion is equally split between each of these channels.

    This model is helpful for looking at both BoFu and ToFu activities.

    Time decay

    Time decay is an attribution model that more accurately credits conversions across different touchpoints. This means the closer a channel is to a conversion, the more weight is given to it.

    The time decay model assumes that the closer a channel is to a conversion, the greater that channel’s impact is on a sale.

    Position based

    Position-based, also called U-shaped attribution, is an interesting model that gives multiple channels credit for a conversion.

    But it doesn’t give equal credit to channels or weighted credit to the channels closest to the conversion.

    Instead, it gives the most credit to the first and last interactions.

    In other words, it emphasises the conversion of someone to a lead and, eventually, a customer.

    It gives the first and last interaction 40% of the credit for a conversion and then splits the remaining 20% across the other touchpoints in the customer journey.

    If you’re ever unsure about which attribution model to use, with Matomo, you can compare them to determine the one that best aligns with your goals and accurately reflects conversion paths. 

    Matomo comparing linear, first click, and last click attribution models in the marketing attribution dashboard

    In the above screenshot from Matomo, you can see how last-click compares to first-click and linear models to understand their respective impacts on conversions.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Use Matomo to track last click attribution

    If you want to improve your marketing, you need to start tracking your efforts. Without marketing attribution, you will never be certain which marketing activities are pushing your business forward.

    Last click attribution is one of the most popular ways to get started with attribution since it, very simply, gives full credit to the last interaction for a conversion.

    If you want to start tracking last click attribution (or any other previously mentioned attribution model), sign up for Matomo’s 21-day free trial today. No credit card required.