• Intel will offer ‘Broadwell’ SOC to battle Calxeda, AMD

    Comments Off on Intel will offer ‘Broadwell’ SOC to battle Calxeda, AMD
    January 5, 2020 /  Computer Technology, Hardware

    Intel has updated its road map with a new, low-power server chip to help it ward off competition from Calxeda and other makers of low-power chips.

    The new chip will be based on Broadwell, a microarchitecture to be introduced next year as the successor to Intel’s Haswell design. But this processor will be a system-on-chip, setting it apart from Intel’s other Xeon server products.

    SOCs combine several components onto a single chip to reduce power consumption and space requirements. In the server market, they’re often used in micro-servers, a type of low-power server used for large-scale, online workloads.

    Intel already offers SOCs in its Atom family of chips, but Atom has its own microarchitecture. The new chip announced Monday will be Intel’s first SOC that uses the same microarchitecture as its more powerful Xeon chips.

    “With this new product, we’ll be delivering the best of both worlds: high performance and high density,” said Diane Bryant, general manager of Intel’s data center and connected systems group, at an Intel event in San Francisco.

    She didn’t give a name for the new chip but said it will ship next year. It will be manufactured on a 14-nanometer process and include integrated I/O, networking, and application accelerators, Bryant said.

    The chip essentially allows Intel to straddle the gap between its current Atom processors, which focus on low power consumption, and its Xeon processors, which are tuned for higher performance but use more electricity.

    “They’re trying to cover the whole market. They’ve decided it’s better to have a little bit of overlap than to have any gaps,” said industry analyst Nathan Brookwood of Insight64.

    The chip comes at a time of heightened competition in the server market. Rivals such as Calxeda and Advanced Micro Devices are building low-power SOCs using designs from UK chip architecture company ARM, and the new chip from Intel is its latest response to that trend.

    Intel didn’t say on Monday if the new chip will be branded as a Xeon or an Atom. Its place between the two product lines could create some confusion for customers, Brookwood said, though he thinks Intel will eventually decide on Xeon.

    It’s not the only chip Intel has for low-power servers. The company recently began shipping a Xeon E3 processor based on the Haswell core, and versions of that chip based on Broadwell are expected next year. They will be “general-purpose” Xeons, as opposed to SOCs specifically for low-power, high-density systems.

    In its Atom family, Intel will begin shipping a new chip later this year code-named Avoton, based on a new chip core known as Silvermont. Compared with the current Atom core, Avoton will offer “a 3x improvement in power at the same performance level, or a 5x increase in performance at the same power,” according to Bryant.

    Tags: , , , ,

  • LCD Panel Full HD Thinnest In The World For Mobile Devices From LG

    Comments Off on LCD Panel Full HD Thinnest In The World For Mobile Devices From LG
    January 4, 2020 /  Computer Technology, Hardware

    Processors are getting faster, increasing the screen resolution and packaging design into its own color thinning on the development of smartphones and tablet PC technology today. With the presence of the latest innovation from LG, the trend will continue. LG introduces the thinnest Full HD display panel in the world for mobile devices. With this innovation, the body seems to be getting thinner smartphone.
    LG LCDpanel 1 world slimmest Full HD LCD Panel Thinnest In The World For Mobile Devices From LG smartphone mobile gadget news
    LCD Panel Full HD Thinnest In The World For Mobile Devices From LG
    LG’s latest display panels present in the 5.2-inch size. There is a possibility this panel will be present in larger sizes for use on Tablet PCs. Thickness is only 2.2 mm, including the bezel or frame size 2.3 mm. The key to the success of creating a panel LG world’s thinnest LCD screen is located on LG Display panel technology, Advanced One-Glass-Solution (OGS). Even to create, LG brings touchscreen technology that is specifically designed and applied the first time through this panel.
    2 LCDpanel world slimmest LG LCD Panel Full HD Thinnest In The World For Mobile Devices From LG smartphone mobile gadget news
    LCD Panel Full HD Thinnest In The World For Mobile Devices From LG
    So what’s the secret to this panel can be very thin? The secret lies in between the display panel and touch the film (layer touch screen). LG Dual Flexible Printed circuit inserts instead of regular single circuit. All components are then combined with Optical Clear Resin parts in between the panel and touch the film with immediate unification system. As a result, it will automatically reduce the thickness of the panel itself as much as 30 percent.
    With the presence Optical Clear Resin, this new tech screen brightness can have a better screen. With a full HD screen resolution of 1920 × 1080 pixels and it has a maximum level of 535 nits brightness, the LCD screen of LG’s latest look more perfect and claimed to still be clearly visible even under the conditions used in the scorching sun.
    Unfortunately, LG has not announced when the LCD screen will make her debut for smartphones and tablet PCs. Most likely we will see it the first time in LG branded products.

    Tags: , , , ,

  • Fuji Xerox Printer Delivers for PPAT and Notaries

    Comments Off on Fuji Xerox Printer Delivers for PPAT and Notaries
    January 4, 2020 /  Computer Technology, Hardware

    Jakarta – Fuji Xerox as a maker of laser printers provide printing solutions for the needs of a Land Deed Official (PPAT) and notarized by presenting a tech A3 laser printer engine and auto-duplex, the DocuPrint 3105.
    This laser printer comes following provisions of National Defense Agency No. 8 of 2012 which states starting in 2013 the preparation and manufacture of blank PPAT deed done by each PPAT, PPAT replacement, temporary PPAT and PPAT special. Of this provision, the PPAT and notaries are required to print your own blank deed and land services they need improvement.
    Notary PPAT and this in turn requires the land deed blank printer A3 size and auto-duplex. »They also need a leading print solutions and terandal, the durable quality legal documents, but at an affordable cost and high performance,” said Teddy Susanto, Country Sales Manager of Fuji Xerox Printer Channel Indonesia in Jakarta, Monday, July 29, 2013.
    Teddy says DocuPrint 3105 has been launched in May 2012 at a price of Rp 8.9 million. »DocuPrint 3105 presents the features, functions, and enterprise-class innovations at affordable prices,” he said.
    DocuPrint 3105 can print up to 32 pages per minute for A4 size and 17 pages per minute in A3 size. This device also has a resolution of 1,200 x 1,200 dpi and can be increased up to 2400 dpi prints through processing technology. Compact dimensions save space office desk.
    Features Toner Save on the DocuPrint 3105 claimed saving toner consumption. This feature has four levels of savings that can be tailored to user needs. This benefits users maximize toner cartridge age, save costs, and consumables.
    This printer also offers security features to help protect confidential legal information. Secure Print function to save documents in the hard disk drive up to the document owner to enter the password in the control panel. For additional security, the printer does encryption on the data before it is sent over the network. This printer also includes a system to remove the disk overwrite data in memory after printing is complete. Check out other techno news here.

    Tags: , , , ,

  • Facebook Earnings Review: What Wall Street Thinks

    Comments Off on Facebook Earnings Review: What Wall Street Thinks

    NEW YORK (TheStreet) — Facebook’s (FB_) second-quarter earnings focused on mobile revenue. Shares were soaring in premarket trading Thursday as Wall Street raised price targets and upgraded shares.

     The Menlo Park, Calif.-based social networker earned 19 cents a share on $1.813 billion in revenue for the quarter, as mobile advertising revenue accounted for 41% of advertising revenue this quarter. Total advertising revenue was $1.6 billion, 88% of total revenue, and up 61% year over year.

    Analysts surveyed by Thomson Reuters were expecting Facebook to earn 14 cents a share on $1.62 billion in revenue for the quarter.

    The company ended the quarter with 1.15 billion monthly active users (MAUs), up 21% year over year. There was a 51% annual increase in mobile MAUs, which drove the strength in mobile revenue. Daily active users (DAUs) were 699 million, up 27% annually.

    Following the earnings, many analysts were bullish, with several upgrading shares and raising price targets. Here’s what some analysts on Wall Street had to say:

    JPMorgan analyst Doug Anmuth (Overweight, $44 PT)

    “Facebook delivered its strongest quarter yet as a public company–results that we think could be thesis-changing for many–and we would continue to buy Facebook shares even after the ~17% move up in the after-market. Our revenue and nonGAAP EPS estimates increase 12% and 38% for 2013, and 22% and 46% for 2014.”

    Topeka Capital Markets analyst Victor Anthony (Buy, $40 PT)

    “Facebook needed to, and delivered, a blowout quarter. What is clear from the results is advertisers have validated Facebook as an advertising platform. For full year 2013, our revenue and Adj. EPS increases to $7.196B and $0.71, resp, from $6.733B and $0.63. We still see more upside for the stock and recommend purchase. There are several well defined catalysts over the next two years that should lead to further share price appreciation, including: 1) monetizing Instagram, which, per CEO Zuckerberg, will generate “a lot of profits”, 2) launch of auto-play video ads, 3) monetizing Graph Search, 4) a bigger push into e-commerce, and 5) the potential for S&P 500 inclusion. Further, only 1mm or 6% of FB’s 18mm potential advertisers are buying ads, implying a huge runway for advertiser uptake exists.”

    Sterne Agee analyst Arvind Bhatia (Buy, $37 PT)

    “We are incrementally bullish on FB’s prospects following 2Q results and believe the stock should be a core holding in Internet portfolios. 2Q’s highlight was Mobile advertising (+76% q/q versus consensus +20%). Overall revenue (53% y/y) and EBITDA (+57% y/y) accelerated from 1Q’s 38%/35% revenue/EBITDA growth. Better than expected user engagement, strong monetization and good cost control helped FB outperform even the most bullish expectations on the Street. Reiterating Buy.”

    Oppenheimer analyst Jason Helfstein (Outperform, $36 PT)

    “Following materially better than expected 2Q results, we are increasing our estimates and price target, and are reiterating our Outperform rating. 2Q upside was driven by higher advertiser demand for newsfeed, both on volume and price, and since mobile Newsfeed pricing is similar to desktop and advertisers are largely indifferent between mobile and desktop, revenues are tracking the consumer shift to smartphones. We believe this dynamic is an important differentiator vs. other ad-supported internet companies, that are being hurt by the mobile mix shift. As such, we are increasing ’13E and ’14E revenue by 3% and 5%, and non-GAAP EPS by 7% and 9%, respectively. Raising target to $36 from $32.”

    Shares of Facebook were soaring following earnings, tacking on 30.48% to $34.59 in premarket trading.

    Tags: , , , ,

  • Internet Download Manager 6.17 Build 3 New Comes With Stability & Reliable

    Comments Off on Internet Download Manager 6.17 Build 3 New Comes With Stability & Reliable
    December 31, 2019 /  Computer Technology, Software

    The company behind the development applications, known as IDM or Internet Download Tonec reportedly named recently presented its latest version of the build for the users on the move IDM. The latest version is nothing but the Internet Download Manager 6:17 Build 3.

    Although the official release notes have not obtained so far, the presence of this latest version of IDM build more likely intended to improve the stability and reliability of the whole application in a particular case.

    Previous versions of Internet Download Manager has received an update to increase download speeds YouTube videos, as well as bug fixes in addressing some of the problems reported by users in the older release.

    Internet Download Manager can be operated smoothly in all the editions of Windows out there, including Windows XP to the latest Windows 8 though. And even special versions of the latest build, reportedly can run well on both versions of the Windows operating systems that exist, either 32-bit or 64-bit.

    Tags: , , , ,

  • Google releases Chrome 28 with Blink browser engine

    Comments Off on Google releases Chrome 28 with Blink browser engine
    December 31, 2019 /  Computer Technology, Internet Informations

    Google on Tuesday released Chrome 28, the first polished version of the browser to use the company’s home-grown “Blink” rendering engine. On Windows, the upgrade also sported Google’s new notification service that lets developers of Chrome apps and add-ons display messages and alerts outside the browser window.

    The upgrade was the first since May 21, when Google shipped Chrome 27 and touted some minor performance improvements.

    [ Also on InfoWorld: Bug bounty programs provide strong value for Google, Mozilla. | Get your websites up to speed with HTML5 today using the techniques in InfoWorld’s HTML5 Deep DivePDF how-to report. | Learn how to secure your Web browsers in InfoWorld’s “Web Browser Security Deep Dive” PDF guide. ]

    Google announced in April that it was dropping the open-source WebKit browser engine — at the time also used only by Apple’s Safari — and was instead launching Blink, a WebKit variant, to power Chrome. Since then, Opera Software’s Opera has also adopted WebKit as an interim step before it eventually moves to Blink.

    Google cited difficulties in adapting WebKit to Chrome, and in the first weeks after the announcement, stripped copious amounts of unnecessary-for-Chrome code from the fork that became Blink. Previously, only the rougher “Dev” and “Beta” builds of Chrome relied on the Blink engine. Users can verify that Blink is present by typing chrome://version/ in the Chrome address-search bar, dubbed the “Omnibox.”

    Also included in Chrome 28 is new support for more sophisticated notifications that appear outside the browser pane and display even when the browser’s not running. “Packaged apps” — ber-Web apps that look and behave like “native” code written specifically for the underlying OS — and add-ons can push brief messages and alerts to Chrome users after their developers have enabled the feature.

    Only the Windows version of Chrome 28 currently supports these next-generation notifications, but Google promised that the feature would soon make its way to OS X and Linux. On a Mac, Chrome notifications are not integrated with OS X Mountain Lion’s Notification Center.

    Along with the debut of Blink and notifications, Chrome 28 contained patches for 15 security vulnerabilities, one of them rated “critical,” Google’s most serious threat ranking. According to Google’s terse security advisory, that flaw was a memory management bug — dubbed a “use-after-free” vulnerability — in the browser’s network sockets code.

    But while Colin Payne, who reported the bug, received an impressive reward of $6,267.40, another researcher was handed triple that. Andrey Labunets was paid a record $21,500 for filing several vulnerability reports, including two in the Google synchronization service and an unknown number of others that Google said were “…since-fixed server-side bugs.”

    That last phrase and the amount paid were clues that Labunets discovered one or more flaws in a core Google service. In April, Google boosted bounties for vulnerability reports in its core websites, services and online apps, resetting the top reward to $20,000 for remote code executable bugs, those that attackers could use to slip malicious code onto a server or into an app or site.

    Labunets is no stranger to large bug bounties. Earlier this year, after reporting a string of weaknesses in Facebook’s authentication protocol, Labunets was awarded $9,500 by the social networking giant.

    Altogether, Google this week paid bounties totaling $34,901 to six researchers, including Payne and Labunets, for reporting eight different bugs. Through Tuesday, the Mountain View, Calif., company has awarded nearly $250,000 thus far this year in bounties or hacking contest prizes.

    Users can download Chrome 28 from Google’s website. Active users can simply let the automatic updater retrieve the new version.

    Tags: , , , ,

  • HP Releases Desktop PC with Military Standards

    Comments Off on HP Releases Desktop PC with Military Standards
    December 30, 2019 /  Computer Technology, Hardware

    Global desktop PC sales continue to slow. However, this does not preclude Hewlett-Packard (HP) to continue releasing the latest desktop PC product lines.

    No half-hearted, at an event in Jakarta, Wednesday (07/24/2013), HP released 4 series desktop PCs at once, namely EliteOne 800 G1, G1 EliteDesk 800, ProOne 600 G1, and G1 ProDesk 600. The four were aimed at the business segment.

    Present as a business device, HP equip these devices with a variety of features that do not exist in the PC consumer.

    For example, four of which are equipped with a safety feature called HP Client Security. Using these features, users can protect the devices at every layer, including hardware, software, and BIOS.

    Other value, the products have passed the test of military standards. According to Ricky Handrian, MDM Business Desktop PC HP Indonesia, standardization include durability, shock, and temperature.

    These devices have to endure or withstand heavy overwritten with a maximum weight of 75 kg. In addition, products with military standards must withstand shock, although it has been taken away in a car in the distance.

    “Devices that pass this certification should still be able to operate, though it was taken in a truck and suffered shock, for example, 1,000 miles,” said Ricky.

    HP Series 800 G1 EliteOne a version All-in-one PC from EliteDesk 800 G1. This product is available in one version a touch screen and non-touch also.

    Those who are interested can choose the specifications of the product. To EliteOne 800 G1, specification available is generation Intel Core processors up to 4 Haswell, Windows 8 Pro, up to 16 GB of RAM, up to 1 TB HDD, and a 23-inch LED screen.

    Meanwhile, the desktop version of this device, EliteDesk 800 G1, comes with a slightly higher specification, namely 4-generation Intel Core processor Haswell, Windows 8 Pro, 32 GB RAM, and up to 2 TB HDD.

    Carrying the same concept with the EliteBook 800, ProOne 600 HP version of the G1 is the all-in-one PC from HP ProDesk 600 G1. For the problem specification, these two products have the same choice as the Elite 800 series.

    So, what distinguishes the two series? According to Ricky, the two series have different processor platforms support. 800 Series uses Intel Q87 platform. While the Pro 600 series using Q85.

    “ProDesk Series 600 is a downgraded version of the EliteBook 800. ProDesk device 600 is certainly cheaper than EliteBook 800. Yeah, let’s just ProDesk 600 as the sister of the EliteBook 800,” added Ricky.

    Tags: , , , ,

  • Q&A: Microsoft Talks Changes to SkyDrive in Windows 8.1

    Comments Off on Q&A: Microsoft Talks Changes to SkyDrive in Windows 8.1
    December 30, 2019 /  Computer Technology, Internet Informations

    When was the last time you had to delete a bunch of photos or apps on your mobile device to clear out space? With the massive amount of data generated every day, it’s easy to exhaust all the available storage on your phone or tablet.

    And this problem is only getting worse. Industry trends suggest that device storage capacities are growing at 25 percent per year, but the amount of data being produced is increasing even faster — by around 50 percent a year, according to Microsoft. The software giant is looking to address this problem with SkyDrive, which will be updated in Windows 8.1 with the goal of giving you access to your files at all times, without taking up all your available storage or Internet bandwidth.

    The updated service utilizes what Microsoft refers to as “placeholder files,” which look and feel like normal folders and files with one major change — you don’t download the full file until you access it. The placeholder file contains just a thumbnail image and some basic properties, making it significantly smaller than its actual size. This means that 100GB of files in SkyDrive will use up less than 5GB of storage on the hard drive of your Windows 8.1 device, Mona Akmal.

    “I have a Pictures folder in SkyDrive that’s 5.6GB in size but it’s only taking up 185MB on the local disk,” Akmal wrote.

    Another major change to SkyDrive in Windows 8.1 deals with offline access to files. With the SkyDrive app, you’ll now be able to mark any folders or files you want remain available when you lose Internet connectivity.

    Any edits you make to a file while offline will automatically be synced back up to SkyDrive when you regain a connection. For added convenience, all the files you open or edit on your device will automatically be marked for offline access.

    As a reminder, new SkyDrive users get 7GB of storage for free. After that, an additional 20GB costs $10 per year, while 50GB will set you back $25 a year, and 100GB costs $50 a year.

    We sat down with Angus Logan, group product marketing manager for SkyDrive (pictured below), last week to get the scoop on the most important changes to the online storage service in Windows 8.1.

    Tags: , , , ,

  • Creating a 3D Game With Three.js and WebGL

    Comments Off on Creating a 3D Game With Three.js and WebGL
    December 28, 2019 /  Computer Technology, Programming

    Prerequisites

    • A browser with WebGL – this game has been tested on Chrome and Firefox. IE still doesn’t support WebGL, unless you’re using Windows 8.1 with IE11.
    • Three.js library available for download from the Three.js website
    • The Keyboard.js helper library I used for this project, created by Arthur Schreiber at No Karma. Download it from my GitHub repository
    • A basic understanding of what Three.js does. Read this super simple, super quick tutorial by Paul Lewis. It’s basically a short-hand version of this article.

    Setup

    Get a base index.html running

    Step one when making a web-based game is to create the host index.html file. In our case, it only needs to be a very simple set of elements, so we can bundle the CSS styling too.

    Import Keyboard.js and Three.js

    Three.js is a library contained in just one JavaScript file, so we can grab the minified version from the website.

    For Keyboard input, we will need to referencethe aforementioned JavaScript file in our index.html as well.

    Create setup() and draw() functions

    The setup() function will be the start point for the game code. The draw() function will be run every frame and will handle all the rendering and game logic.

    In order to loop the draw() function, we simply utilise the requestAnimationFrame() function call, and pass ‘draw’ as the parameter. Remember, not all browsers natively support the call, and you might have to use Paul Irish’s shim to gain maximum compatibility. Also, it is important to realise that requestAnimationFrame() does not guarantee a fixed frame-rate, so you need to use time-deltas to calculate realistic physics. For a basic game like Pong, we don’t really care about that.

    Basic World

    Set up the Three.js world and camera

    Three.js includes these important elements:

    • Scene
    • Renderer
    • Camera
    • Mesh
    • Light
    • Material

    Cameras, Meshes, and Lights need to be added to the scene using the scene.add() function.

    Attach a WebGL Three.js Renderer to the DIV

    The renderer is attached to whichever HTML DOM element you wish to render the scene to, and a render() call is made each frame to the renderer in order to draw the Three.js scene.

    Add a camera to the scene

    Three.js has the option to create Perspective and Orthographic cameras. For most uses, Perspective camera is the best choice. We can change position and rotation information of the camera like any other object in the scene.

    Draw a sphere and light it

    Meshes must be paired with Materials in order to give them a defined look and feel. Meshes can be of many types, include primitives such as Cube, Sphere, Plane and Torus. Materials can have different characteristics depending on their type. The basic Material types include Lambert, Phong, and Basic.

    • Basic renders an unlit Mesh with no shadows or dark shading. A sphere will look like a circle if rendered with Basic.
    • Lambert is a simple diffuse-like lighting that creates shading on sides facing away from a light source. It gives a basic 3D look of surfaces that are matte (non-shiny and non-reflective)
    • Phong is used for achieving a plastic-like look and feel, with the ability to gain highlights that give a much shinier appearance to the Mesh.

    Show off your sphere with a Point Light. This is the most basic light, with no direction or rotation. Make sure you tweak the light’s intensity and distance to get it looking good.

    Add Game Objects

    Draw playing area plane

    The playing area will be a Three.js Mesh object of type Plane. Make sure the plane matches the play area, giving a small buffer gap to indicate where the paddles can and can’t go.

    Draw paddles

    The paddles will be Mesh objects of type Cube. Position each of the paddles on opposite sides of the play area.

    1234567891011121314151617181920212223242526272829303132333435363738394041
    // set up the paddle vars
    paddleWidth = 10;
    paddleHeight = 30;
    paddleDepth = 10;
    paddleQuality = 1;
    // set up paddle 1
    paddle1 = new THREE.Mesh(
    new THREE.CubeGeometry(
    paddleWidth,
    paddleHeight,
    paddleDepth,
    paddleQuality,
    paddleQuality,
    paddleQuality),
    paddle1Material);
    // add the paddle to the scene
    scene.add(paddle1);
    // Set up the second paddle
    paddle2 = new THREE.Mesh(
    new THREE.CubeGeometry(
    paddleWidth,
    paddleHeight,
    paddleDepth,
    paddleQuality,
    paddleQuality,
    paddleQuality),
    paddle2Material);
    // Add the second paddle to the scene
    scene.add(paddle2);
    // set paddles on each side of the table
    paddle1.position.x = -fieldWidth/2 + paddleWidth;
    paddle2.position.x = fieldWidth/2 – paddleWidth;
    // lift paddles over playing surface
    paddle1.position.z = paddleDepth;
    paddle2.position.z = paddleDepth;
    view rawBNG_Pong_paddlecreateThis Gist brought to you by GitHub.

    If you manipulate the camera positions, as seen in the screenshot, you can give a different perspective to the player.

    Basic Logic

    Ball movement

    The ball will have an X-direction and a Y-direction that determines the movement per frame.

    // ball’s x-direction, y-direction and speed per frame
    var ballDirX = 1, ballDirY = 1, ballSpeed = 2;

    The ball will move at a constant speed in the X-plane every frame. To this end, we will specify a ballSpeed variable that acts as a multiplier for the direction values.

    // update ball position over time
    ball.position.x += ballDirX * ballSpeed;
    ball.position.y += ballDirY * ballSpeed;

    We want the ball to have some unpredictable characteristics (e.g. when it gets sliced quite hard) so we will allow the Y-direction to go up to a maximum of ballSpeed * 2. You can tweak the values until you’re happy with how the ball behaves.

    // limit ball’s y-speed to 2x the x-speed
    // this is so the ball doesn’t speed from left to right super fast
    // keeps game playable for humans
    if (ballDirY > ballSpeed * 2)
    {
    ballDirY = ballSpeed * 2;
    }
    else if (ballDirY < -ballSpeed * 2)
    {
    ballDirY = -ballSpeed * 2;
    }

    Ball wall bounce logic

    Simple collision detection logic is required to check if the ball is touching each of the side ‘walls’. Using a series of ‘if-else’ statements, we check the ball positions against the predetermined wall positions. In the case of a collision, we simply switch the Y-direction of the ball, creating a bounce effect.

    // if ball goes off the top side (side of table)
    if (ball.position.y <= -fieldHeight/2)
    {
    ballDirY = -ballDirY;
    }
    // if ball goes off the bottom side (side of table)
    if (ball.position.y >= fieldHeight/2)
    {
    ballDirY = -ballDirY;
    }

    Later, we will edit some of this code in order to implement scoring when the ball passes a paddle.

    Keyboard input for paddles

    We will utilise a very effective short-cut in order to easily get keyboard input working in this game. Using the Keyboard.js file provided, we simply have to include the reference to it in the index.html file and we are set. Only one function call is required, the Key.isDown() call. Given a parameter, the library checks if that particular key is current being pressed, and returns a boolean value.

    // move left
    if (Key.isDown(Key.A))
    {
    // code to move paddle left
    }

    We use the ‘A’ and ‘D’ keys to move the paddle left and right, but you can edit the Keyboard.js with additional values if you want to use your own control scheme.

    var Key = {
    _pressed: {},
    A: 65,
    W: 87,
    D: 68,
    S: 83,
    // add your required key code (ASCII) along with the name here
    // for example:
    SPACE: 32,
    };

    While dealing with keyboard input, it is also important to ensure that the input is never blindly updated in game. We have to check that the paddle isn’t made to move off the play area, and we do that with some ‘if-else’ statements as well.

    // move left
    if (Key.isDown(Key.A))
    {
    // if paddle is not touching the side of table
    // we move
    if (paddle1.position.y < fieldHeight * 0.45)
    {
    paddle1DirY = paddleSpeed * 0.5;
    }
    // else we don’t move and stretch the paddle
    // to indicate we can’t move
    else
    {
    paddle1DirY = 0;
    paddle1.scale.z += (10 – paddle1.scale.z) * 0.2;
    }
    }

    Note that we use a paddle direction variable, rather than simply applying a change to the position values. This will come in handy when programming the ball to ‘slice’ when hit at an angle with a fast-moving paddle.

    Opponent logic

    When you code a game of this calibre, it is of utmost importance that you create a vivid, lush environment with a host of emotional, highly-relatable characters that showcase this generation’s strides forward in technology. Instead, we will code a Pong A.I. that blindly follows the ball, because that is even better.

    We can update the opponent difficulty by using a variable instead of introducing magic numbers. This variable will affect the ‘reaction rate’ of the opponent by increasing the Lerp (Linear-Interpolation) time.

    When using a Lerp (Linear-Interpolation) function, we must ensure the opponent plays fairly by limiting their maximum travel speed. We do that with a few more if-else statements.

    // in case the Lerp function produces a value above max paddle speed, we clamp it
    if (Math.abs(paddle2DirY) <= paddleSpeed)
    {
    paddle2.position.y += paddle2DirY;
    }
    // if the lerp value is too high, we have to limit speed to paddleSpeed
    else
    {
    // if paddle is lerping in +ve direction
    if (paddle2DirY > paddleSpeed)
    {
    paddle2.position.y += paddleSpeed;
    }
    // if paddle is lerping in -ve direction
    else if (paddle2DirY < -paddleSpeed)
    {
    paddle2.position.y -= paddleSpeed;
    }
    }
    If want to extend immersion, you could also using the paddle.scale property to stretch the paddle when it can’t be moved. This indicates an issue to the player which they can then address immediately. In order to accomplish this, we must ensure the paddle always Lerps back to the default scale size.
    // We lerp the scale back to 1
    // this is done because we stretch the paddle at some points
    // stretching is done when paddle touches side of table and when paddle hits ball
    // by doing this here, we ensure paddle always comes back to default size
    paddle2.scale.y += (1 – paddle2.scale.y) * 0.2;

    Adding Gameplay

    Making the ball reset after missing a paddle

    To get the main scoring gameplay working, we need to first remove the ball’s ability to bonce off the paddle-facing walls. To do this, we remove the bounce code from the two corresponding if-else statements.

    // if ball goes off the top side (side of table)
    if (ball.position.y <= -fieldHeight/2)
    {
    ballDirY = -ballDirY;
    }
    // if ball goes off the bottom side (side of table)
    if (ball.position.y >= fieldHeight/2)
    {
    ballDirY = -ballDirY;
    }
    //// ——————————— ////
    CHANGED CODE
    //// ——————————— ////
    // if ball goes off the ‘left’ side (Player’s side)
    if (ball.position.x <= -fieldWidth/2)
    {
    // CPU scores a point
    // update scoreboard
    // and reset ball
    }
    // if ball goes off the ‘right’ side (CPU’s side)
    if (ball.position.x >= fieldWidth/2)
    {
    // player scores a point
    // update scoreboard
    // and reset ball
    }

    We can handle scoring in many different ways. For a simple game like this, we can simply increment the corresponding score count variable.

    // if ball goes off the ‘left’ side (Player’s side)
    if (ball.position.x <= -fieldWidth/2)
    {
    // CPU scores
    score2++;
    // update scoreboard HTML
    document.getElementById(“scores”).innerHTML = score1 + “-” + score2;
    // reset ball to center
    resetBall(2);
    // check if match over (someone scored maxScore points)
    matchScoreCheck();
    }

    We can then update the HUD element in the DOM by setting its innerHTML value. Finally, we have to reset the ball once someone has scored. A simple function can be written to reset the ball, with a parameter indicating which paddle just lost (so we know which paddle to send the ball to next time).

    // resets the ball’s position to the centre of the play area
    // also sets the ball direction speed towards the last point winner
    function resetBall(loser)
    {
    // position the ball in the center of the table
    ball.position.x = 0;
    ball.position.y = 0;
    // if player lost the last point, we send the ball to opponent
    if (loser == 1)
    {
    ballDirX = -1;
    }
    // else if opponent lost, we send ball to player
    else
    {
    ballDirX = 1;
    }
    // set the ball to move +ve in y plane (towards left from the camera)
    ballDirY = 1;
    }

    Making the ball bounce off paddles

    Alright, this is it. The big one. Literally the biggest feature of this game. It’s time to get the paddles hitting the ball. In a simple Pong game, paddle-ball physics are nothing more than a couple of if-else statements. We check the X-position and Y-position of the ball against the paddle’s rectangular bounds, and if they intersect, we bounce the ball away.

    // if ball is aligned with paddle1 on x plane
    // remember the position is the CENTER of the object
    // we only check between the front and the middle of the paddle (one-way collision)
    if (ball.position.x <= paddle1.position.x + paddleWidth
    && ball.position.x >= paddle1.position.x)
    {
    // and if ball is aligned with paddle1 on y plane
    if (ball.position.y <= paddle1.position.y + paddleHeight/2
    && ball.position.y >= paddle1.position.y – paddleHeight/2)
    {
    // ball is intersecting with the front half of the paddle
    }
    }

    It’s also important to check the direction of the ball’s travel, as we only want to check collisions in one direction (the direction towards the opponent.)

    // and if ball is travelling towards player (-ve direction)
    if (ballDirX < 0)
    {
    // stretch the paddle to indicate a hit
    paddle1.scale.y = 15;
    // switch direction of ball travel to create bounce
    ballDirX = -ballDirX;
    // we impact ball angle when hitting it
    // this is not realistic physics, just spices up the gameplay
    // allows you to ‘slice’ the ball to beat the opponent
    ballDirY -= paddle1DirY * 0.7;
    }

    We will also affect the ball’s lateral movement depending on the relative speed of the paddle when hitting the ball. This is particularly useful in introducing the biggest variable in Pong: the slice. Slicing the ball is often the only way to confuse and outmaneuver the opponent, so it is vital in this game.

    Remember to duplicate the code, but update the values to match the opponent’s paddle. You can use this opportunity to gimp your opponent’s ability somewhat, by reducing the hitbox size or decreasing the slice amount. It’s what we would all do.

    Here is the final paddle-ball collision function:

    // Handles paddle collision logic
    function paddlePhysics()
    {
    // PLAYER PADDLE LOGIC
    // if ball is aligned with paddle1 on x plane
    // remember the position is the CENTER of the object
    // we only check between the front and the middle of the paddle (one-way collision)
    if (ball.position.x <= paddle1.position.x + paddleWidth
    && ball.position.x >= paddle1.position.x)
    {
    // and if ball is aligned with paddle1 on y plane
    if (ball.position.y <= paddle1.position.y + paddleHeight/2
    && ball.position.y >= paddle1.position.y – paddleHeight/2)
    {
    // and if ball is travelling towards player (-ve direction)
    if (ballDirX < 0)
    {
    // stretch the paddle to indicate a hit
    paddle1.scale.y = 15;
    // switch direction of ball travel to create bounce
    ballDirX = -ballDirX;
    // we impact ball angle when hitting it
    // this is not realistic physics, just spices up the gameplay
    // allows you to ‘slice’ the ball to beat the opponent
    ballDirY -= paddle1DirY * 0.7;
    }
    }
    }
    // OPPONENT PADDLE LOGIC
    // if ball is aligned with paddle2 on x plane
    // remember the position is the CENTER of the object
    // we only check between the front and the middle of the paddle (one-way collision)
    if (ball.position.x <= paddle2.position.x + paddleWidth
    && ball.position.x >= paddle2.position.x)
    {
    // and if ball is aligned with paddle2 on y plane
    if (ball.position.y <= paddle2.position.y + paddleHeight/2
    && ball.position.y >= paddle2.position.y – paddleHeight/2)
    {
    // and if ball is travelling towards opponent (+ve direction)
    if (ballDirX > 0)
    {
    // stretch the paddle to indicate a hit
    paddle2.scale.y = 15;
    // switch direction of ball travel to create bounce
    ballDirX = -ballDirX;
    // we impact ball angle when hitting it
    // this is not realistic physics, just spices up the gameplay
    // allows you to ‘slice’ the ball to beat the opponent
    ballDirY -= paddle2DirY * 0.7;
    }
    }
    }
    }
    view rawBNG_Pong_paddlecollCompleteThis Gist brought to you by GitHub.

    Scoring

    In Pong, it is usually simplest to have a maximum score value, such that a game is won when either player reaches that score. To that end, we can easily create a maxScore variable and set it at the start of the match.

    We then create a function to check if either player has scored equal or higher than the maximum. This function should be called only when a score has been changed (i.e. when someone scores a point.)

    // checks if either player or opponent has reached 7 points
    function matchScoreCheck()
    {
    // if player has 7 points
    if (score1 >= maxScore)
    {
    // stop the ball
    ballSpeed = 0;
    // write to the banner
    document.getElementById(“scores”).innerHTML = “Player wins!”;
    document.getElementById(“winnerBoard”).innerHTML = “Refresh to play again”;
    }
    // else if opponent has 7 points
    else if (score2 >= maxScore)
    {
    // stop the ball
    ballSpeed = 0;
    // write to the banner
    document.getElementById(“scores”).innerHTML = “CPU wins!”;
    document.getElementById(“winnerBoard”).innerHTML = “Refresh to play again”;
    }
    }

    After a match is deemed complete, it is simplest to just return the ball to the centre and stop any movement, so that play doesnt inadvertently continue.

    Prettifying the Game

    HUD

    It’s important to give feedback to the player so they know what’s going on. For Pong, the least we can do is keep a scoreboard ticking over. Instead of trying to draw the HUD on the same layer as the game, we can use the other DOM elements to provide the required feedback.

    It’s also good to indicate the maximum score as well, so we have another element for that which we will update at match start.

    // update the board to reflect the max score for match win
    document.getElementById(“winnerBoard”).innerHTML = “First to ” + maxScore + ” wins!”;

    Shadows

    Finally, it is time to make things look a tad more polished. Three.js has the awesome ability to create shadows for primitive objects (Cube, Plane, Sphere, etc.) so we can utilise that to make the game look nicer.

    Shadows can’t be created with just a Point light, so we have to add a DirectionalLight or a SpotLight. A SpotLight shines a circular beam of light onto surfaces, which DirectionalLight simply shines a light in a certain direction with no regard to positioning.

    We will use a SpotLight because it clearly indicates where the light originates from and shines towards.

    We can update the SpotLight to follow the ball around to give a more dynamic look and feel to the game, whilst showcasing the hard work we just put into the lighting.

    // we can easily notice shadows if we dynamically move lights during the game
    spotLight.position.x = ball.position.x;
    spotLight.position.y = ball.position.y;

    To make an object in the scene cast or receive shadows, we simply set their .receiveShadow and .castShadow variables to true. For example,

    paddle1 = new THREE.Mesh(
    new THREE.CubeGeometry(paddleWidth, paddleHeight, paddleDepth, paddleQuality, paddleQuality, paddleQuality),
    paddle1Material);
    // add the sphere to the scene
    scene.add(paddle1);
    paddle1.receiveShadow = true;
    paddle1.castShadow = true;

    Conclusion

    This is but a basic introduction to the power of Three.js, which should allow you to create a basic Pong clone.

    Play the latest build of this game here: LATEST BUILD*

    Find the latest code at its GitHub page*

    You can still do quite a number of things to polish your game, such as

    • Create animations for the paddles and ball
    • Update the HUD to look prettier
    • Import complex objects created in Modeling packages, to design a more immersive environment
    • Move HUD elements inside the game view to allow for full-screen gaming
    • Mess around with complex shaders to create reflections and other cool effects

    Tags: , , , ,

  • Sony Xperia smartphones Z

    Comments Off on Sony Xperia smartphones Z
    December 28, 2019 /  Computer Technology, Hardware

    The Water Proofing

    Sony Xperia Z’s lips at the Consumer Electronic Show (CES) 2013 in Las Vegas in early January. Because this phone has the security features that is waterproof.

    U3-436-SonySmartphone dimensions 139 x 71 x 7.9 mm screen has 5 ˝. With such a wide screen, the display explores the experience is more freely, though it would be difficult to operate with one hand. Smartphone flat box shape does look pretty, it’s just feels less comfortable grip. This smartphone is also layered glass on each side. Those who would like smartphones bodied clean, need frequent cleaning traces of the hand attached to the glass. Dressings glass also makes it feel a little slippery when held.

    The placement of the power button and the volume of the right middle, making it easy to reach buttons when holding, either left or right-handed. Micro-USB port, a micro-SIM, microSD, headset jack and has a special cover so that water does not enter into these holes.

    Sony Xperia Z screen uses the Bravia Engine 2. 1080 × 1920 pixel image displays sharp colors. When used under strong light, the screen can still display a good image. This screen does not use IPS panels, so that the sharpness of the picture is only valid when it is in plain sight. Once tilted, the color looks a little foggy. The screen has wet finger tracking, so it can still operate even if your fingers wet. But, when in the water, he still does not respond to touch.

    One more thing to note is hot. When using a smartphone intensive, especially when connected to the internet, so it feels very hot. Although the heat was tolerable hand, the heat is quite disturbing because the effect on Li-ion 2300mAh battery that is growing quickly depleted. This substantial battery can last all day with moderate internet usage. In addition, the Sony Xperia Z also has stamina mode that turns off the internet when the smartphone is not active. Internet will be active again after Sony Xperia Z used.

    This smartphone’s camera using RS 13 megapixel Exmor sensor, the resulting image is quite good. Sony Xperia Z adds many exciting features, such as burst and HDR function. There are also picture effects such as panoramic images and a variety of filters to be creative with the pictures taken. One favorite is the sketch effect. The camera is also capable of recording HD quality video.

    Audio business, Sony presents the expiration monaural speaker and stereo sound with headphones. The resulting sound is quite crisp innate headphones in ears, though not too special. While the default mono speakers generate sound quite comfortable to hear. In tests conducted PCplus, Sony Xperia Z can still operate despite being dipped into the water. Turn on the music, until a call. It’s just the sound of the speakers so there selantang usually after dyed. Wait three hours, the speakers back to normal.

    Tags: , , , ,