Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (57)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

  • Installation en mode standalone

    4 février 2011, par

    L’installation de la distribution MediaSPIP se fait en plusieurs étapes : la récupération des fichiers nécessaires. À ce moment là deux méthodes sont possibles : en installant l’archive ZIP contenant l’ensemble de la distribution ; via SVN en récupérant les sources de chaque modules séparément ; la préconfiguration ; l’installation définitive ;
    [mediaspip_zip]Installation de l’archive ZIP de MediaSPIP
    Ce mode d’installation est la méthode la plus simple afin d’installer l’ensemble de la distribution (...)

Sur d’autres sites (4286)

  • Four Trends Shaping the Future of Analytics in Banking

    27 novembre 2024, par Daniel Crough — Banking and Financial Services

    While retail banking revenues have been growing in recent years, trends like rising financial crimes and capital required for generative AI and ML tech pose significant risks and increase operating costs across the financial industry, according to McKinsey’s State of Retail Banking report.

     

    Today’s financial institutions are focused on harnessing AI and advanced analytics to make their data work for them. To be up to the task, analytics solutions must allow banks to give consumers the convenient, personalised experiences they want while respecting their privacy.

     

    In this article, we’ll explore some of the big trends shaping the future of analytics in banking and finance. We’ll also look at how banks use data and technology to cut costs and personalise customer experiences.

    So, let’s get into it.

    Graph showing average age of IT applications in insurance (18 years)

    This doesn’t just represent a security risk, it also impacts the usability for both customers and employees. Does any of the following sound familiar ?

    • Only specific senior employees know how to navigate the software to generate custom reports or use its more advanced features.
    • Customer complaints about your site’s usability or online banking experience are routine.
    • Onboarding employees takes much longer than necessary because of convoluted systems.
    • Teams and departments experience ‘data siloing,’ meaning that not everyone can access the data they need.

    These are warning signs that IT systems are ready for a review. Anyone thinking, “If it’s not broken, why fix it ?” should consider that legacy systems can also present data security risks. As more countries introduce regulations to protect customer privacy, staying ahead of the curve is increasingly important to avoid penalties and litigation.

    And regulations aren’t the only trends impacting the future of financial institutions’ IT and analytics.

    4 trends shaping the future of analytics in banking

    New regulations and new technology have changed the landscape of analytics in banking.

    New privacy regulations impact banks globally

    The first major international example was the advent of GDPR, which went into effect in the EU in 2018. But a lot has happened since. New privacy regulations and restrictions around AI continue to roll out.

    • The European Artificial Intelligence Act (EU AI Act), which was held up as the world’s first comprehensive legislation on AI, took effect on 31 July 2024.
    • In Europe’s federated data initiative, Gaia-X’s planned cloud infrastructure will provide for more secure, transparent, and trustworthy data storage and processing.
    • The revised Payment Services Directive (PSD2) makes payments more secure and strengthens protections for European businesses and consumers, aiming to create a more integrated and efficient payments market.

    But even businesses that don’t have customers in Europe aren’t safe. Consumer privacy is a hot-button issue globally.

    For example, the California Consumer Privacy Act (CCPA), which took effect in January, impacts the financial services industry more than any other. Case in point, 34% of CCPA-related cases filed in 2022 were related to the financial sector.

    California’s privacy regulations were the first in the US, but other states are following closely behind. On 1 July 2024, new privacy laws went into effect in Florida, Oregon, and Texas, giving people more control over their data.

    Share of CCPA cases in the financial industry in 2022 (34%)

    One typical issue for companies in the banking industry is that their privacy measures regarding user data collected from their website are much less lax than those in their online banking system.

    It’s better to proactively invest in a privacy-centric analytics platform before you get tangled up in a lawsuit and have to pay a fine (and are forced to change your system anyway). 

    And regulatory compliance isn’t the only bonus of an ethical analytics solution. The right alternative can unlock key customer insights that can help you improve the user experience.

    The demand for personalised banking services

    At the same time, consumers are expecting a more and more streamlined personal experience from financial institutions. 86% of bank employees say personalisation is a clear priority for the company. But 63% described resources as limited or only available after demonstrating clear business cases.

    McKinsey’s The data and analytics edge in corporate and commercial banking points out how advanced analytics are empowering frontline bank employees to give customers more personalised experiences at every stage :

    • Pre-meeting/meeting prep : Using advanced analytics to assess customer potential, recommend products, and identify prospects who are most likely to convert
    • Meetings/negotiation : Applying advanced models to support price negotiations, what-if scenarios and price multiple products simultaneously
    • Post-meeting/tracking : Using advanced models to identify behaviours that lead to high performance and improve forecast accuracy and sales execution

    Today’s banks must deliver the personalisation that drives customer satisfaction and engagement to outperform their competitors.

    The rise of AI and its role in banking

    With AI and machine learning technologies becoming more powerful and accessible, financial institutions around the world are already reaping the rewards.

    McKinsey estimates that AI in banking could add $200 to 340 billion annually across the global banking sector through productivity gains.

    • Credit card fraud prevention : Algorithms analyse usage to flag and block fraudulent transactions.
    • More accurate forecasting : AI-based tools can analyse a broader spectrum of data points and forecast more accurately.
    • Better risk assessment and modelling : More advanced analytics and predictive models help avoid extending credit to high-risk customers.
    • Predictive analytics : Help spot clients most likely to churn 
    • Gen-AI assistants : Instantly analyse customer profiles and apply predictive models to suggest the next best actions.

    Considering these market trends, let’s discuss how you can move your bank into the future.

    Using analytics to minimise risk and establish a competitive edge 

    With the right approach, you can leverage analytics and AI to help future-proof your bank against changing customer expectations, increased fraud, and new regulations.

    Use machine learning to prevent fraud

    Every year, more consumers are victims of credit and debit card fraud. Debit card skimming cases nearly doubled in the US in 2023. The last thing you want as a bank is to put your customer in a situation where a criminal has spent their money.

    This not only leads to a horrible customer experience but also creates a lot of internal work and additional costs.Thankfully, machine learning can help identify suspicious activity and stop transactions before they go through. For example, Mastercard’s fraud prevention model has improved fraud detection rates by 20–300%.

    A credit card fraud detection robot

    Implementing a solution like this (or partnering with credit card companies who use it) may be a way to reduce risk and improve customer trust.

    Foresee and avoid future issues with AI-powered risk management

    Regardless of what type of financial products organisations offer, AI can be an enormous tool. Here are just a few ways in which it can mitigate financial risk in the future :

    • Predictive analytics can evaluate risk exposure and allow for more informed decisions about whether to approve commercial loan applications.
    • With better credit risk modelling, banks can avoid extending personal loans to customers most likely to default.
    • Investment banks (or individual traders or financial analysts) can use AI- and ML-based systems to monitor market and trading activity more effectively.

    Those are just a few examples that barely scratch the surface. Many other AI-based applications and analytics use cases exist across all industries and market segments.

    Protect customer privacy while still getting detailed analytics

    New regulations and increasing consumer privacy concerns don’t mean banks and financial institutions should forego website analytics altogether. Its insights into performance and customer behaviour are simply too valuable. And without customer interaction data, you’ll only know something’s wrong if someone complains.

    Fortunately, it doesn’t have to be one or the other. The right financial analytics solution can give you the data and insights needed without compromising privacy while complying with regulations like GDPR and CCPA.

    That way, you can track usage patterns and improve site performance and content quality based on accurate data — without compromising privacy. Reliable, precise analytics are crucial for any bank that’s serious about user experience.

    Use A/B testing and other tools to improve digital customer experiences

    Personalised digital experiences can be key differentiators in banking and finance when done well. But there’s stiff competition. In 2023, 40% of bank customers rated their bank’s online and mobile experience as excellent. 

    Improving digital experiences for users while respecting their privacy means going above and beyond a basic web analytics tool like Google Analytics. Invest in a platform with features like A/B tests and user session analysis for deeper insights into user behaviour.

    Diagram of an A/B test with 4 visitors divided into two groups shown different options

    Behavioural analytics are crucial to understanding customer interactions. By identifying points of friction and drop-off points, you can make digital experiences smoother and more engaging.

    Matomo offers all this and is a great GDPR-compliant alternative to Google Analytics for banks and financial institutions

    Of course, this can be challenging. This is why taking an ethical and privacy-centric approach to analytics can be a key competitive edge for banks. Prioritising data security and privacy will attract other like-minded, ethically conscious consumers and boost customer loyalty.

    Get privacy-friendly web analytics suitable for banking & finance with Matomo

    Improving digital experiences for today’s customers requires a solid web analytics platform that prioritises data privacy and accurate analytics. And choosing the wrong one could even mean ending up in legal trouble or scrambling to reconstruct your entire analytics setup.

    Matomo provides privacy-friendly analytics with 100% data accuracy (no sampling), advanced privacy controls and the ability to run A/B tests and user session analysis within the same platform (limiting risk and minimising costs). 

    It’s easy to get started with Matomo. Users can access clear, easy-to-understand metrics and plenty of pre-made reports that deliver valuable insights from day one. Form usage reports can help banks and fintechs identify potential issues with broken links or technical glitches and reveal clues on improving UX in the short term.

    Over one million websites, including some of the world’s top banks and financial institutions, use Matomo for their analytics.

    Start your 21-day free trial to see why, or book a demo with one of our analytics experts.

  • Hacking the Popcorn Hour C-200

    3 mai 2010, par Mans — Hardware, MIPS

    Update : A new firmware version has been released since the publication of this article. I do not know if the procedure described below will work with the new version.

    The Popcorn Hour C-200 is a Linux-based media player with impressive specifications. At its heart is a Sigma Designs SMP8643 system on chip with a 667MHz MIPS 74Kf as main CPU, several co-processors, and 512MB of DRAM attached. Gigabit Ethernet, SATA, and USB provide connectivity with the world around it. With a modest $299 on the price tag, the temptation to repurpose the unit as a low-power server or cheap development board is hard to resist. This article shows how such a conversion can be achieved.

    Kernel

    The PCH runs a patched Linux 2.6.22.19 kernel. A source tarball is available from the manufacturer. This contains the sources with Sigma support patches, Con Kolivas’ patch set (scheduler tweaks), and assorted unrelated changes. Properly split patches are unfortunately not available. I have created a reduced patch against vanilla 2.6.22.19 with only Sigma-specific changes, available here.

    The installed kernel has a number of features disabled, notably PTY support and oprofile. We will use kexec to load a more friendly one.

    As might be expected, the PCH kernel does not have kexec support enabled. It does however, by virtue of using closed-source components, support module loading. This lets us turn kexec into a module and load it. A patch for this is available here. To build the module, apply the patch to the PCH sources and build using this configuration. This will produce two modules, kexec.ko and mips_kexec.ko. No other products of this build will be needed.

    The replacement kernel can be built from the PCH sources or, if one prefers, from vanilla 2.6.22.19 with the Sigma-only patch. For the latter case, this config provides a minimal starting point suitable for NFS-root.

    When configuring the kernel, make sure CONFIG_TANGOX_IGNORE_CMDLINE is enabled. Otherwise the command line will be overridden by a useless one stored in flash. A good command line can be set with CONFIG_CMDLINE (under “Kernel hacking” in menuconfig) or passed from kexec.

    Taking control

    In order to load our kexec module, we must first gain root privileges on the PCH, and here a few features of the system are working to our advantage :

    1. The PCH allows mounting any NFS export to access media files stored there.
    2. There is an HTTP server running. As root.
    3. This HTTP server can be readily instructed to fetch files from an NFS mount.
    4. Files with a name ending in .cgi are executed. As root.

    All we need do to profit from this is place the kexec modules, the kexec userspace tools, and a simple script on an NFS export. Once this is done, and the mount point configured on the PCH, a simple HTTP request will send the old kernel screaming to /dev/null, our shiny new kernel taking its place.

    The rootfs

    A kernel is mostly useless without a root filesystem containing tools and applications. A number of tools for cross-compiling a full system exist, each with its strengths and weaknesses. The only thing to look out for is the version of kernel headers used (usually a linux-headers package). As we will be running an old kernel, chances are the default version is too recent. Other than this, everything should be by the book.

    Assembling the parts

    Having gathered all the pieces, it is now time to assemble the hack. The following steps are suitable for an NFS-root system. Adaptation to a disk-based system is left as an exercise.

    1. Build a rootfs for MIPS 74Kf little endian. Make sure kernel headers used are no more recent than 2.6.22.x. Include a recent version of the kexec userspace tools.
    2. Fetch and unpack the PCH kernel sources.
    3. Apply the modular kexec patch.
    4. Using this config, build the modules and install them as usual to the rootfs. The version string must be 2.6.22.19-19-4.
    5. From either the same kernel sources or plain 2.6.22.19 with Sigma patches, build a vmlinux and (optionally) modules using this config. Modify the compiled-in command line to point to the correct rootfs. Set the version string to something other than in the previous step.
    6. Copy vmlinux to any directory in the rootfs.
    7. Copy kexec.sh and kexec.cgi to the same directory as vmlinux.
    8. Export the rootfs over NFS with full read/write permissions for the PCH.
    9. Power on the PCH, and update to latest firmware.
    10. Configure an NFS mount of the rootfs.
    11. Navigate to the rootfs in the PCH UI. A directory listing of bin, dev, etc. should be displayed.
    12. On the host system, run the kexec.sh script with the target hostname or IP address as argument.
    13. If all goes well, the new kernel will boot and mount the rootfs.

    Serial console

    A serial console is indispensable for solving boot problems. The PCH board has two UART connectors. We will use the one labeled UART0. The pinout is as follows (not standard PC pinout).

            +-----------+
           2| * * * * * |10
           1| * * * * * |9
            -----------+
              J7 UART0
        /---------------------/ board edge
    
    Pin Function
    1 +5V
    5 Rx
    6 Tx
    10 GND

    The signals are 3.3V so a converter, e.g. MAX202, is required for connecting this to a PC serial port. The default port settings are 115200 bps 8n1.

  • Recording voice using HTML5 and processing it with ffmpeg

    22 mars 2015, par user3789242

    I need to use ffmpeg in my javascript/HTML5 project which allows the user to select the format he wants the audio to open with.I don’t know anything about ffmpeg and I’ve been doing lots of research I don’t know how to use it in my project. I found an example https://github.com/sopel39/audioconverter.js but the problem how can I install the ffmpeg.js which is 8 mg to m project. please if someone can help me I’ll be very thankfull
    here is my full code :

    the javascript page :

    // variables
    var leftchannel = [];
    var rightchannel = [];
    var recorder = null;
    var recording = false;
    var recordingLength = 0;
    var volume = null;
    var audioInput = null;
    var sampleRate = 44100;
    var audioContext = null;
    var context = null;
    var outputString;



    if (!navigator.getUserMedia)
    navigator.getUserMedia = navigator.getUserMedia ||
                            navigator.webkitGetUserMedia ||
                            navigator.mozGetUserMedia ||
                            navigator.msGetUserMedia;

    if (navigator.getUserMedia){
    navigator.getUserMedia({audio:true}, success, function(e) {
    alert('Error capturing audio.');
    });
    } else alert('getUserMedia not supported in this browser.');



    function getVal(value)
     {

    // if R is pressed, we start recording
    if ( value == "record"){
       recording = true;
       // reset the buffers for the new recording
       leftchannel.length = rightchannel.length = 0;
       recordingLength = 0;
       document.getElementById('output').innerHTML="Recording now...";

    // if S is pressed, we stop the recording and package the WAV file
    } else if ( value == "stop" ){

       // we stop recording
       recording = false;
       document.getElementById('output').innerHTML="Building wav file...";

       // we flat the left and right channels down
       var leftBuffer = mergeBuffers ( leftchannel, recordingLength );
       var rightBuffer = mergeBuffers ( rightchannel, recordingLength );
       // we interleave both channels together
       var interleaved = interleave ( leftBuffer, rightBuffer );



       var buffer = new ArrayBuffer(44 + interleaved.length * 2);
       var view = new DataView(buffer);

       // RIFF chunk descriptor
       writeUTFBytes(view, 0, 'RIFF');
       view.setUint32(4, 44 + interleaved.length * 2, true);
       writeUTFBytes(view, 8, 'WAVE');
       // FMT sub-chunk
       writeUTFBytes(view, 12, 'fmt ');
       view.setUint32(16, 16, true);
       view.setUint16(20, 1, true);
       // stereo (2 channels)
       view.setUint16(22, 2, true);
       view.setUint32(24, sampleRate, true);
       view.setUint32(28, sampleRate * 4, true);
       view.setUint16(32, 4, true);
       view.setUint16(34, 16, true);
       // data sub-chunk
       writeUTFBytes(view, 36, 'data');
       view.setUint32(40, interleaved.length * 2, true);


       var lng = interleaved.length;
       var index = 44;
       var volume = 1;
       for (var i = 0; i < lng; i++){
           view.setInt16(index, interleaved[i] * (0x7FFF * volume), true);
           index += 2;
       }

       var blob = new Blob ( [ view ], { type : 'audio/wav' } );

       // let's save it locally

       document.getElementById('output').innerHTML='Handing off the file now...';
       var url = (window.URL || window.webkitURL).createObjectURL(blob);

       var li = document.createElement('li');
       var au = document.createElement('audio');
       var hf = document.createElement('a');

       au.controls = true;
       au.src = url;
       hf.href = url;
       hf.download = 'audio_recording_' + new Date().getTime() + '.wav';
       hf.innerHTML = hf.download;
       li.appendChild(au);
       li.appendChild(hf);
       recordingList.appendChild(li);

    }
    }


    function success(e){

    audioContext = window.AudioContext || window.webkitAudioContext;
    context = new audioContext();


    volume = context.createGain();

    // creates an audio node from the microphone incoming stream(source)
    source = context.createMediaStreamSource(e);

    // connect the stream(source) to the gain node
    source.connect(volume);

    var bufferSize = 2048;

    recorder = context.createScriptProcessor(bufferSize, 2, 2);

    //node for the visualizer
    analyser = context.createAnalyser();
    analyser.smoothingTimeConstant = 0.3;
    analyser.fftSize = 512;

    splitter = context.createChannelSplitter();
    //when recording happens
    recorder.onaudioprocess = function(e){

       if (!recording) return;
       var left = e.inputBuffer.getChannelData (0);
       var right = e.inputBuffer.getChannelData (1);

       leftchannel.push (new Float32Array (left));
       rightchannel.push (new Float32Array (right));
       recordingLength += bufferSize;

       // get the average for the first channel
       var array =  new Uint8Array(analyser.frequencyBinCount);
       analyser.getByteFrequencyData(array);

       var c=document.getElementById("myCanvas");
       var ctx = c.getContext("2d");
       // clear the current state
       ctx.clearRect(0, 0, 1000, 325);
       var gradient = ctx.createLinearGradient(0,0,0,300);
       gradient.addColorStop(1,'#000000');
       gradient.addColorStop(0.75,'#ff0000');
       gradient.addColorStop(0.25,'#ffff00');
       gradient.addColorStop(0,'#ffffff');
       // set the fill style
       ctx.fillStyle=gradient;
       drawSpectrum(array);
       function drawSpectrum(array) {
           for ( var i = 0; i < (array.length); i++ ){
                   var value = array[i];
                   ctx.fillRect(i*5,325-value,3,325);
               }

       }
    }

    function getAverageVolume(array) {
       var values = 0;
       var average;

       var length = array.length;

       // get all the frequency amplitudes
       for (var i = 0; i < length; i++) {
           values += array[i];
       }

       average = values / length;
       return average;
    }

       // we connect the recorder(node to destination(speakers))
       volume.connect(splitter);
       splitter.connect(analyser, 0, 0);

       analyser.connect(recorder);
       recorder.connect(context.destination);

    }




    function mergeBuffers(channelBuffer, recordingLength){
    var result = new Float32Array(recordingLength);
    var offset = 0;
    var lng = channelBuffer.length;
    for (var i = 0; i < lng; i++){
    var buffer = channelBuffer[i];
    result.set(buffer, offset);
    offset += buffer.length;
    }
       return result;
      }

    function interleave(leftChannel, rightChannel){
    var length = leftChannel.length + rightChannel.length;
    var result = new Float32Array(length);

    var inputIndex = 0;

    for (var index = 0; index < length; ){
    result[index++] = leftChannel[inputIndex];
    result[index++] = rightChannel[inputIndex];
    inputIndex++;
    }
    return result;
    }


    function writeUTFBytes(view, offset, string){
    var lng = string.length;
    for (var i = 0; i < lng; i++){

    view.setUint8(offset + i, string.charCodeAt(i));
    }
    }

    and here is the html code :

       
       
       
       <code class="echappe-js">&lt;script src=&quot;http://stackoverflow.com/feeds/tag/js/functions.js&quot;&gt;&lt;/script&gt;