Recherche avancée

Médias (91)

Autres articles (63)

Sur d’autres sites (4192)

  • Investigating Steam for Linux

    1er mars 2013, par Multimedia Mike — Game Hacking

    Valve recently released the final, public version of their Steam client for Linux, and the Linux world rejoiced. At least, it probably did. The announcement was 2 weeks ago on Valentine’s Day and I had other things on my mind, so I missed any fanfare. When framed in this manner, the announcement timing becomes suspect– it’s as though Linux enthusiasts would have plenty of time that day or something.


    Valve Steam logo

    Taming the Frontier
    Speculation about a Linux Steam client had been kicking around for nearly as long as Steam has existed. However, sometime last year, the rumors became more substantive.

    I naturally wondered how to port something like Steam to Linux. I have some experience with trying to make a necessarily binary-only program that runs on Linux. I’m fairly well-versed in the assorted technical challenges that one might face when attempting such a feat. Because of this, whenever I hear rumors that a company might be entertaining the notion of porting a major piece of proprietary software to Linux, my instinctive reflex is, “What ?! Why, you fools ?! Save yourselves !”

    At least, that’s how it used to be. The proposal of developing a proprietary binary for Linux has been rendered considerably less insane by a few developments, for example :

    1. The rise of Ubuntu Linux as a quasi de facto standard for desktop Linux computing
    2. The increasing homogeneity in personal desktop computing technology

    What I would like to know is how the Steam client runs on Linux. Does it rely on any libraries being present on the system ? Or does it bring its own ? The latter is a trick that proprietary programs can use– transport all of the shared libraries that the main program binary depends upon, install them someplace out of the way on the filesystem, probably in /opt, and then make the main program a shell script which sets a preload path to rely on the known quantity libraries instead of the copies already on the system.

    Downloading and Installing the Client
    For this exercise, I installed x86_64 desktop Ubuntu 12.04 Linux on a l33t gaming rig that was totally top of the line about 5 years ago, and that someone didn’t want anymore and handed down to me recently. So it should be ideal for this project.

    At first, I was blown away– the Linux client is in a .deb package that is less than 2 MB large. I unpacked the steam.deb file and found a bunch of support libraries — mostly X11 and standard C/C++ runtimes. Just as I suspected. Still, I can’t believe how small the thing is. However, my amazement quickly abated when I actually ran Steam and saw this :


    Steam Linux Client -- initial update

    So it turns out steam.db is just the installer program which immediately proceeds to download an additional 160+ MB of data. So there’s actually a lot more information to possibly sift through.

    Another component of the installation is to basically run a big ‘apt-get install’ command to make sure a bunch of required packages are installed :


    Steam Linux Client -- install system packages

    After all these installation steps, the client was ready to run. However, whenever I tried to do so, I got this dialog which would cause Steam to close when the dialog was dismissed.


    Steam Linux Client -- Upgrade NVIDIA drivers

    Not a huge deal ; later NVIDIA drivers are fairly straightforward to install on Ubuntu Linux. After a few minutes of downloading, installing and restarting X, Steam ran with minimal complaint (it still had some issue regarding the video drivers but didn’t seem to consider it a deal-breaker).

    Using Steam on Linux

    So here’s Steam running on Linux :


    Steam Linux Client -- main screen

    If you have experience with using Steam on Windows or Mac, you might observe that it looks exactly the same. I don’t have a very expansive library of games (I only started using Steam because purchasing a few computer components a few years ago entitled me to some free Steam downloads of some of the games on the list in the screenshot). I didn’t really expect any of the games to have Linux versions yet, but it turns out that the indie darling FTL : Faster Than Light has been ported to Linux. FTL was a much-heralded Kickstarter success story and sounded like something I wanted to support. I purchased this from Steam shortly after its release last year and was able to download the Linux version at no additional cost with a single click.

    It runs natively on Linux (note the Ubuntu desktop window decorations) :


    FTL game running on Linux through Steam

    You might notice from the main Steam client that, despite purchasing FTL about a 1/2 year ago and starting it up at least a 1/2 dozen times, I haven’t really invested a whole lot of time into it. I only managed to get about 2 minutes further this time :


    A few more minutes in FTL

    What can I say ? This game just bores me to tears. It’s frustrating because I know that this is one of the cool games that all real gamers are supposed to like, but I practically catch myself nodding off every time I try to run through the tutorial. It’s strange to think that I’ve invested far more time into games that offer considerably less stimulation. That’s probably because I had far more free time compared to gaming options during those times.

    But that’s neither here nor there. We’ll file this under “games that aren’t for me.” I’m glad that people like FTL and a little indie underdog has met with such success. And I’m pleased that Steam on Linux works. It’s native and the games are also native, which is all quite laudable (there was speculation that everything would just be running on top of a Wine layer).

    Deeper Analysis
    So I set out wondering how Steam was able to create a proprietary program that would satisfy a large enough cross-section of Linux users (i.e., on different platforms and distros). Answer : well, they didn’t, per the stated requirements. The installation is only tuned to work on Ubuntu 12.04. However, it works on both 32- and 64-bit platforms, the only 2 desktop CPU platforms that matter these days (unless ARM somehow makes inroads on the desktop). The Steam client is quite clearly an x86_32 binary– look at the terminal screenshot above and observe that it’s downloading all :i386 support libraries.

    The file /usr/bin/steam isn’t a binary but a launcher shell script (something you’ll also see if you investigate /usr/bin/firefox on a Linux system). Here’s an interesting tidbit :

    function detect_platform()
    
      # Maybe be smarter someday
      # Right now this is the only platform we have a bootstrap for, so hard-code it.
      echo ubuntu12_32
    
    

    I wager that it’s possible to get Steam running on other distributions, it probably just takes a little more effort (assuming that Steam doesn’t put too much effort into thwarting such attempts).

    As for the FTL game, it comes with binaries and libraries for both x86_32 and x86_64. So, good work to the dev team for creating and testing both versions. FTL also distributes versions of the libraries it expects to work with.

    I suspect that the Steam client overall is largely a WWW rendering engine underneath the covers. That would help explain how Valve is able to achieve such a consistent look and feel, not only across OS platforms, but also through a web browser. When I browse the Steam store through Google Chrome, it looks and feels exactly like the native desktop client. When I first thought of how someone could port Steam to Linux, I immediately wondered about how they would do the UI.

    A little Googling for “steam uses webkit” (just a hunch) confirms my hypothesis.

  • Re-solving My Search Engine Problem

    28 juillet 2012, par Multimedia Mike — General, swish-e

    14 years ago, I created a web database of 8-bit Nintendo Entertainment System games. To make it useful, I developed a very primitive search feature.

    A few months ago, I decided to create a web database of video game music. To make it useful, I knew it would need to have a search feature. I realized I needed to solve the exact same problem again.

    Requirements
    The last time I solved this problem, I came up with an excruciatingly naïve idea. Hey, it worked. I really didn’t want to deploy the same solution again because it felt so silly the first time. Surely there are many better ways to solve it now ? Many different workable software solutions that do all the hard work for me ?

    The first time I attacked this, it was 1998 and hosting resources were scarce. On my primary web host I was able to put static HTML pages, perhaps with server side includes. The web host also offered dynamic scripting capabilities via something called htmlscript (a.k.a. MIVA Script). I had a secondary web host in my ISP which allowed me to host conventional CGI scripts on a Unix host, so that’s where I hosted the search function (Perl CGI script accessing a key/value data store file).

    Nowadays, sky’s the limit. Any type of technology you want to deploy should be tractable. Still, a key requirement was that I didn’t want to pay for additional hosting resources for this silly little side project. That leaves me with options that my current shared web hosting plan allows, which includes such advanced features as PHP, Perl and Python scripts. I can also access MySQL.

    Candidates
    There are a lot of mature software packages out there which can index and search data and be plugged into a website. But a lot of them would be unworkable on my web hosting plan due to language or library package limitations. Further, a lot of them feel like overkill. At the most basic level, all I really want to do is map a series of video game titles to URLs in a website.

    Based on my research, Lucene seems to hold a fair amount of mindshare as an open source indexing and search solution. But I was unsure of my ability to run it on my hosting plan. I think MySQL does some kind of full text search, so I could have probably made a solution around that. Again, it just feels like way more power than I need for this project.

    I used Swish-e once about 3 years ago for a little project. I wasn’t confident of my ability to run that on my server either. It has a Perl API but it requires custom modules.

    My quest for a search solution grew deep enough that I started perusing a textbook on information retrieval techniques in preparation for possibly writing my own solution from scratch. However, in doing so, I figured out how I might subvert an existing solution to do what I want.

    Back to Swish-e
    Again, all I wanted to do was pull data out of a database and map that data to a URL in a website. Reading the Swish-e documentation, I learned that the software supports a mode specifically tailored for this. Rather than asking Swish-e to index a series of document files living on disk, you can specify a script for Swish-e to run and the script will generate what appears to be a set of phantom documents for Swish-e to index.

    When I ’add’ a game music file to the game music website, I have a scripts that scrape the metadata (game title, system, song titles, composers, company, copyright, the original file name on disk, even the ripper/dumper who extracted the chiptune in the first place) and store it all in an SQLite database. When it’s time to update the database, another script systematically generates a series of pseudo-documents that spell out the metadata for each game and prefix each document with a path name. Searching for a term in the index returns a lists of paths that contain the search term. Thus, it makes sense for that path to be a site URL.

    But what about a web script which can search this Swish-e index ? That’s when I noticed Swish-e’s C API and came up with a crazy idea : Write the CGI script directly in C. It feels like sheer madness (or at least the height of software insecurity) to write a CGI script directly in C in this day and age. But it works (with the help of cgic for input processing), just as long as I statically link the search script with libswish-e.a (and libz.a). The web host is an x86 machine, after all.

    I’m not proud of what I did here— I’m proud of how little I had to do here. The searching CGI script is all of about 30 lines of C code. The one annoyance I experienced while writing it is that I had to consult the Swish-e source code to learn how to get my search results (the "swishdocpath" key — or any other key — for SwishResultPropertyStr() is not documented). Also, the C program just does the simplest job possible, only querying the term in the index and returning the results in plaintext, in order of relevance, to the client-side JavaScript code which requested them. JavaScript gets the job of sorting and grouping the results for presentation.

    Tuning the Search
    Almost immediately, I noticed that the search engine could not find one of my favorite SNES games, U.N. Squadron. That’s because all of its associated metadata names Area 88, the game’s original title. Thus, I had to modify the metadata database to allow attaching somewhat free-form tags to games in order to compensate. In this case, an alias title would show up in the game’s pseudo-document.

    Roman numerals are still a thorn in my side, just as they were 14 years ago in my original iteration. I dealt with it back then by converting all numbers to Roman numerals during the index and searching processes. I’m not willing to do that for this case and I’m still looking for a good solution.

    Another annoying problem deals with Mega Man, a popular franchise. The proper spelling is 2 words but it’s common for people to mash it into one word, Megaman (see also : Spider-Man, Spiderman, Spider Man). The index doesn’t gracefully deal with that and I have some hacks in place to cope for the time being.

    Positive Results
    I’m pleased with the results so far, and so are the users I have heard from. I know one user expressed amazement that a search for Castlevania turned up Akumajou Densetsu, the Japanese version of Castlevania III : Dracula’s Curse. This didn’t surprise me because I manually added a hint for that mapping. (BTW, if you are a fan of Castlevania III, definitely check out the Akumajou Densetsu soundtrack which has an upgraded version of the same soundtrack using special audio channels.)

    I was a little more surprised when a user announced that searching for ’probotector’ correctly turned up Contra : Hard Corps. I looked into why this was. It turns out that the original chiptune filename was extremely descriptive : "Contra - Hard Corps [Probotector] (1994-08-08)(Konami)". The filenames themselves often carry a bunch of useful metadata which is why it’s important to index those as well.

    And of course, many rippers, dumpers, and taggers have labored for over a decade to lovingly tag these songs with as much composer information as possible, which all gets indexed. The search engine gets a lot of compliments for its ability to find many songs written by favorite composers.

  • The Only 7 Lead Generation Tools You Need in 2024

    7 mars 2024, par Erin

    If you can’t get leads, you can’t get customers. To ensure you always have a steady stream of new customers (and revenue), you need to equip yourself with lead generation tools.

    Lead gen software does the heavy lifting for you so you can focus on providing great products and great services. With it, you’ll be able to turn more strangers into customers and grow your business.

    And you don’t need a ton of tools to get the job done, either. Consolidating your tech stack to a few select tools will help you get more done in less time (and with less confusion).

    In this article, we’ll analyse the top seven lead generation tools to help you grow your business in 2024.

    Let’s dive in.

    What is a lead generation tool ?

    A lead generation tool is software you can use to turn strangers into customers. It helps you draw customers into your sales funnel by learning their contact details, like their email address or phone number.

    What is a lead generation tool?

    Lead generation tools are great levers you can pull to drive high-quality leads. They remove the grunt work by automating the lead generation process. 

    Whether it’s through creating lead magnets, offering conversion rate analytics, helping you create high-quality forms or automating the lead follow-up process, lead generation tools can bring in new customers to grow your business.

    The top 7 lead generation tools in 2024

    To land more leads, you need to ensure you’re leveraging the right software. With so many to choose from, here’s just a handful of the best ones available :

    7 best lead generation tools

    1. Matomo : Best conversion optimisation tool

    Matomo is an open-source website analytics tool dedicated to protecting user privacy and data. Trusted on over 1 million websites, the platform offers in-depth insights into your web traffic, including conversion data.

    Matomo dashboard

    Why Matomo ? Matomo is trusted by over 1 million websites, including the United Nations and the European Commission, making it the leading choice for privacy-focused web analytics.

    It comes equipped with a suite of conversion optimisation features to help you generate more leads. You can easily analyse your target audience’s behaviour while also respecting users’ privacy.

    Standout features : In-depth visitor tracking, From Analytics, Session Recordings, A/B Testing, Heatmaps Marketing Attribution, roll-up reporting (pulling data from multiple sites), Google Analytics importing. and more.

    Integrations : Cloudflare, WooCommerce, Squarespace, Shopify, Drupal, Magento, Vue, SharePoint, WordPress, Wix, Webflow, GoDaddy, Jimdo, Joomla, Kajabi. and more.

    Pricing : Starts free for Matomo On-Premise and increases to $23/month for Matomo Cloud (which includes a free 21-day trial with no credit card required).

    Pros

    • 100% accurate data with no data sampling
    • Leading web analytics tool for respecting visitor privacy
    • Compliant with the strictest privacy laws, like the GDPR
    • No need for cookie consent banner (except in the UK and Germany)
    • Wide range of advanced features to optimise your website and increase conversions
    • Cloud hosting and on-premise options for flexibility

    Cons

    • Matomo On-Premise requires technical expertise (but for the less technical, the Cloud option works instantly)
    • On-Premise plugins are an additional cost

    Try Matomo for Free

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

    No credit card required

    2. HubSpot : Best all-in-one CRM for organising leads

    HubSpot is a customer relationship management (CRM) and marketing software with over 194,000 customers worldwide. This user-friendly platform is dedicated to helping businesses of all sizes manage leads and customers.

    Hubspot Marketing activities dashboard

    Why HubSpot ? HubSpot Marketing integrates seamlessly with the HubSpot CRM to help with everything from lead capture to conversion. The platform also features a free version — a great starting place for lead generation and management.

    Standout features : A robust set of no-code lead gen tools, like ads, forms, customisable landing pages, lead capture templates for potential customers, email campaigns, analytics dashboards and a free CRM to track leads.

    Integrations : Google Ads, WordPress, Jotform, Facebook Ads, Magento, Shopify, Weebly, WordPress, Zapier and Drupal.

    Pricing : Starts free for anyone and increases to $800/month for a professional plan.

    Pros

    • User-friendly interface
    • All-in-one lead management solution
    • Easy integration with HubSpot CRM
    • Simple analytics for beginners
    • Includes landing page tools
    • Offers email marketing tools to nurture leads

    Cons

    • Free version has limited functionality
    • Expensive jump to paid plans

    3. Leadfeeder : Best for finding warm B2B leads

    Leadfeeder is a business-to-business (B2B) marketing tool that shows B2B brands which companies are visiting their websites and gives them contact information to reach out to the right decision-makers.

    Leadfeeder dashboard

    Why Leadfeeder ? Leadfeeder simplifies outreach for B2B organisations because it shows you what businesses are interacting with your website. Rather than trying to reach out to completely cold leads, the tool highlights brands that are already checking out your content and offerings.

    Standout features : Many account-based marketing (ABM) tools enable you to discover B2B accounts with insights into when you should contact them after they visit your site, as well as their job titles. The platform also includes a range of features that notify you and your sales team when qualified B2B leads come to your site so that you can move to capture them quickly.

    Integrations : Zoho, Google Chat, Pipedrive, Salesforce, Google Looker Studio, ActiveCampaign, HubSpot, Mailchimp, Microsoft Dynamics and Slack.

    Pricing : Starts at $139/month (includes a 14-day free trial).

    Pros

    • Easily find prospective customers
    • Track website visitors and potential customers freely
    • Simple filtering capabilities

    Cons

    • Few integrations available
    • Can be difficult to contact customer support

    4. OptinMonster : Best all-in-one lead generation form tool

    Founded in 2013, OptinMonster has over 1.2 million users worldwide. It offers a wide range of lead gen tools led by robust form tools that turn your target audience into leads.

    Optinmonster form creation dashboard

    Why OptinMonster ? The platform is one of the most reputable lead generation platforms available. With nearly 100 lead capture templates, it’s highly customisable to almost any business looking to begin capturing leads with different forms.

    Standout features : 95 customisable form templates, drag-and-drop builders, onsite retargeting, segmentation, A/B testing and exit-intent popups that present forms when a user is about to leave the site.

    Integrations : Constant Contact, ConvertKit, ActiveCampaign, Salesforce Pardot, Campaign Monitor, HubSpot, Jilt, Keap and Mailchimp.

    Pricing : Starts at $16/month (no free trial offered).

    Pros

    • Easy drag-and-drop form-builder
    • Wide range of form templates
    • Customisable forms for any business
    • Simple A/B testing to help optimise form performance

    Cons

    • No free trial available
    • Growth features, like onsite retargeting, are only available on higher-tiered plans

    5. Intercom : Best live chat tool for capturing leads

    Intercom is one of the top live chat tools for helping businesses maintain solid communication with their customers. Founded in 2011, this live chat platform serves over 25,000 users around the world with a simple, sophisticated experience and seamless lead generation features.

    Intercome live chat example

    Why Intercom ? Intercom is a live chat tool first. But many people don’t know it’s also a simple lead capture tool. When people think of lead generation, they think of static or popup forms. But Intercom allows you to capture forms directly within a live chat conversation.

    Standout features : Lead generation via live chat that allows you to naturally capture potential customers’ information to turn them into a lead. The tool also comes equipped with chatbots that can automate the communication and lead gen process on autopilot.

    Integrations : Pipedrive, Typeform, Google Analytics, Zapier, Calendly, Salesforce, Stripe, Campaign Monitor, Clearbit Reveal and HubSpot.

    Pricing : Starts at $39/month (with a 21-day free trial).

    Pros

    • Live chat lead gen capture
    • Chatbot lead generation automation
    • Wide range of integrations and apps
    • User-friendly interface

    Cons

    • Fairly expensive for small businesses
    • Customer support isn’t the fastest

    6. Callingly : Best for making inbound calls with leads

    Callingly is a sophisticated call software that lets you get the most out of every inbound call you get from leads. Founded in 2019, this software company gives valuable insights into your inbound call leads, pulling information from various integrations and forms.

    Callingly dashboard

    Why Callingly ? Callingly is a robust call software that gathers lead information through forms, lead magnets, landing pages and forms. The software also has intelligent routing, which sends a call to the most relevant salesperson.

    Standout features : Advanced lead routing ensures inbound leads are directed to the most appropriate sales rep based on their unique needs and geographic location. The tool is also equipped with call tracking, analytics, lead source tracking and more to help personalise the experience for quick capture and conversion of leads.

    Integrations : ClickFunnels, Pipedrive, Salesforce, Drip, Aircall, HubSpot, Jotform, OptinMonster, Unbounce and Zapier.

    Pricing : Starts at $49/month (with a 14-day free trial).

    Pros

    • Instantly see robust caller information based on previous interactions
    • Intelligent routing places leads with the right sales reps
    • Call recordings to capture data and transfer it into your CRM
    • Voicemail and caller ID capabilities
    • Reporting and analytics for performance tracking

    Cons

    • Doesn’t include lead segmentation
    • Limited customisations
    • No email integration

    7. Notion : Best for creating informational lead magnets

    Notion is one of the most popular collaboration tools on the Internet. Founded in 2013, the platform has over 35 million users worldwide. While it’s known primarily for its advanced note-taking capabilities, Notion is also a simple tool you can use to create informational lead magnets.

    Notion course creation template

    Why Notion ? Notion is a simple yet powerful tool you can use to create almost anything. If you want to generate more leads, then creating a free info product with Notion is a simple and effective way to do that. It enables you to create ebooks, digital courses and video courses without having to rely on expensive software.

    Standout features : Documentation tools, note-taking, collaborative documents and duplication capabilities. It’s simple to create a high-value informational product, like an ebook or course with multiple chapters.

    Integrations : Audienceful, Miro, Momentum, Slack, ChatGPT, Clockify, Desktop.com, SureTriggers, Trello and Google Drive.

    Pricing : Starts at $8/month (no free trial available).

    Pros

    • Easy to create a digital product or lead magnet
    • Leads have access with a simple link
    • Lead magnet can be updated in real time
    • AI writing assistant
    • Drag-and-drop functionality
    • User-friendly interface
    • Low-cost pricing plans

    Cons

    • No free trial available (though there is a free version)
    • Search function could use some improvement
    • Performance isn’t the fastest

    Use Matomo to generate more leads

    If you want more leads, then you need to start tracking your website’s forms.

    With Matomo, you get access to features like Form Analytics, A/B Testing, Heatmaps, and Session Recordings to help with conversion rate optimisation.

    Recently, Concrete CMS leveraged Matomo’s funnel analysis feature to improve its lead capture. The CMS was then able to identify bottlenecks in user onboarding. Matomo’s insights showed that users were getting stuck at the address input stage of the form.

    By tweaking their form, Concrete CMS tripled their leads in just a few days.

    If you want to improve your lead generation, then get started with Matomo’s 21-day free trial today. No credit card required.