Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 20,946
» Latest member: blackopsdlc
» Forum threads: 22,100
» Forum posts: 23,067

Full Statistics

Online Users
There are currently 1122 online users.
» 0 Member(s) | 1117 Guest(s)
Applebot, Baidu, Bing, Facebook, Google

Latest Threads
Headphone Stand 3D Print ...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 1
[WoW Retail News] Glory o...
Forum: World of Warcraft
Last Post: xSicKxBot

» Replies: 0
» Views: 10
[PS.Blog] God of War Lauf...
Forum: Sony Discussion
Last Post: xSicKxBot

» Replies: 0
» Views: 11
[Ubuntu News] How a missi...
Forum: Linux, FreeBSD, and Unix types
Last Post: xSicKxBot

» Replies: 0
» Views: 9
What is Black Ops 6 Zombi...
Forum: PC Discussion
Last Post: xSicKxBot

» Replies: 0
» Views: 15
[WoW Retail News] Winds o...
Forum: World of Warcraft
Last Post: xSicKxBot

» Replies: 0
» Views: 16
Digital Sundial 3D Print ...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 18
Modular Mounting System 3...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16
Self-Watering Planter (Sm...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16
The $30 3D scanner V7 upd...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16

 
  Fedora - Fedora 30 supplemental wallpapers
Posted by: xSicKxBot - 03-09-2019, 09:10 AM - Forum: Linux, FreeBSD, and Unix types - No Replies

Fedora 30 supplemental wallpapers

Each release, the Fedora Design team works with the community on a set of 16 additional wallpapers. Users can install and use these to supplement the standard wallpaper. The Fedora Design team encourages submissions from the whole community. Contributors then use the Nuancier app to vote on the top 16 to include.

Voting has closed on the extra wallpapers for Fedora 30. Voters chose from among 56 submissions. A total of 128 Fedora contributors voted, choosing the following 16 backgrounds to include in Fedora 30:

(Editors’ note: Thank you to Sirko Kemter, who authored this article and conducted the voting process.)

Print this item

  Azure Hybrid Benefit for SQL Server
Posted by: xSicKxBot - 03-09-2019, 09:10 AM - Forum: C#, Visual Basic, & .Net Frameworks - No Replies

Azure Hybrid Benefit for SQL Server

Angelos Petropoulos

Angelos

In my previous blog post I talked about how to migrate data from existing on-prem SQL Server instances to Azure SQL Database. If you haven’t heard SQL Server 2008 end of support is coming this summer, so it’s a good time to evaluate moving to an Azure SQL Database.

If you decide to try Azure, chances are you will not be able to immediately move 100% of your on-prem databases and relevant applications in one go. You’ll probably come up with a migration plan that spans weeks, months or even years. During the migration phase you will be spinning up new instances of Azure SQL Database and turning off on-prem SQL Server instances, but for a little bit of time there will be overlap.

To help manage the cost during such transitions we offer the Azure Hybrid Benefit. You can convert 1 core of SQL Enterprise edition to get up to 4 vCores of Azure SQL Database at a reduced rate. For example, if you have 4 core licenses of SQL Enterprise edition, you can receive up to 16 vCores of Azure SQL Database.

If you want to learn more check out the Azure Hybrid Benefit FAQ and don’t forget, if you have any questions around migrating your .NET applications to Azure you can always ask for free assistance. If you have any questions about this post just leave us a comment below.

Angelos Petropoulos

Print this item

  Embedded Linux Software Highlights from Embedded World
Posted by: xSicKxBot - 03-09-2019, 04:29 AM - Forum: Linux, FreeBSD, and Unix types - No Replies

Embedded Linux Software Highlights from Embedded World

In my day job at LinuxGizmos, I’ve been neck deep recently in embedded Linux hardware news from the Embedded World show in Nuremberg. There are plenty of new SBCs and compute modules — many based on NXP’s newly shipping i.MX8M Mini — as well as a new Qualcomm Robotics RB3 Platform, more IoT gateways, and Linux-ready chips like ST’s STM32MP1 and Octavo SiP version of the SoC.

Yet, Embedded World has produced some embedded Linux software news, as well. Here we take a brief look at some highlights, including Google open sourcing its Cloud IoT Device SDK, the Linux Foundation launching an ELISA project for open source safety-critical systems, and a new long-term kernel from the Civil Infrastructure Platform project.

In other news, Siemens has spun a Debian-based binary version of Mentor Embedded Linux (MEL), and AMD and Advantech are collaborating with Mentor to develop a machine-learning savvy implementation of MEL. Finally, Wind River announced a “Helix Platform” that combines Wind River Linux and VxWorks, and MontaVista has launched MontaVista Carrier Grade eXpress 2.6.

Google releases open source Device SDK


Google has released a Cloud IoT Device SDK under open source license designed to connect microcontroller devices and IoT-oriented Linux gizmos to its Google Cloud IoT platform. The SDK can be considered a lower-end, MCU endpoint-oriented counterpart to its Linux-focused Cloud IoT Edge stack for IoT gateways that integrate Google’s AI-accelerating Cloud TPU chips.

The Cloud IoT Device SDK comprises client libraries written in Embedded C to “enable developers to securely connect, provision, and manage devices with Cloud IoT Core,” says Google. Target devices range from handhelds to low-end smart home devices. OS support includes Zephyr, Mbed OS, FreeRTOS, and POSIX-compliant platforms like Linux. Early partners include Arm, Cypress, Nordic, Espressif, Microchip, and NXP.

The open source release presents an alternative strategy to Google’s proprietary, higher-end Android Things IoT platform. Google recently announced that Android Things would be limited to OEM partners developing smart speakers and displays with Google Assistant.

Linux Foundation launches ELISA safety-critical project


The Linux Foundation, which this week welcomed 34 new members including HP, also announced a project called Enabling Linux in Safety Applications (ELISA) to develop open source tools and processes that help companies build and certify Linux-based safety-critical applications and systems. Targeted applications include robotics, medical, smart factories, transportation, and autonomous cars.

ELISA is building on work done by the SIL2LinuxMP project from the Open Source Automation Development Lab (OSADL), as well as the Linux Foundation’s Real-Time Linux project. Founding ELISA members include Arm, BMW Car IT GmbH, Linutronix, and Toyota, which is a leading member of the LF’s Automotive Grade Linux project. The roster also includes new LF member and robotics manufacturer KUKA.

ELISA project goals include working with certification authorities and standardization bodies “to establish how Linux can be used as a component in safety-critical systems.” The project will develop safety-related reference documentation and use cases, educate and collaborate with the open source community, provide members with incident and hazard monitoring of critical components, and encourage best practices.

CIP releases first SLTS kernel


ELISA is related to the LF’s Civil Infrastructure Platform (CIP) project, which this week announced the release of its promised Super Long Term Support (SLTS) Linux Kernel with 64-bit Arm support. The key enhancement of the SLTS kernel is its unprecedented 10-year plus support. The kernel is also designed for the higher safety, security, and reliability requirements of large infrastructure and industrial applications.

The CIP project also announced two new working groups. The first is a Software Update Working Group led by Toshiba. The second is a Security Working Group led by Renesas, whose new RZ-G2 SoCs are the first to support the SLTS.

Mentor Embedded Linux goes binary


Like Wind River Linux and MontaVista, Mentor Graphics’ Mentor Embedded Linux (MEL) has been one of the leading commercial embedded Linux distros. It is also similarly based on Yocto Project code. Now, almost two years after Siemens acquired Mentor, Siemens PLM Software has announced a new version of MEL that ditches the Yocto foundation for Debian. The distro, which melds MEL with an inhouse Debian stack designed for Siemens automation equipment, is available as an “enterprise-class” binary.

Because it can load as a simple binary, the new Siemens enterprise version of MEL is easier to install and use than the Yocto-based version, claims Siemens. (The Yocto version will continue to be available.)

Siemens partner Xilinx is also sold on the binary approach: “By combining the capabilities of an embedded Linux distribution with those from the Debian binary desktop Linux distribution, today’s developers — many of whom have honed their skills in the Linux desktop development — can easily extend those same skills into fully featured embedded systems,” stated Simon George, director of system software and SoC Solution Marketing, Xilinx.

The new Linux solution provides a stable kernel, a robust toolchain, broad community support, secure field updates, and application isolation, says Siemens. It offers up-to-date cloud support and familiar MEL features such as Sourcery Analyzer tools. Improved multi-core support enables heterogeneous systems that also run Mentor’s Nucleus RTOS.

AMD and Advantech collaborate on ML-focused MEL version


In other MEL news, AMD, Advantech, and Mentor announced a customized version of MEL that runs on Advantech’s SOM-5871 compute module based on AMD’s Ryzen Embedded V1000 SoC. The solution will “make it easier for customers to implement machine vision applications within their IoT or edge compute ecosystem, helping to improve efficiency and accuracy of machine vision solutions,” says AMD. The chipmaker hints that the platform will align with the LF’s EdgeX Foundry project for edge computing.

Wind River goes cross-platform with Helix Platform


Wind River, which is no longer owned by Intel, has unveiled a Wind River Helix Virtualization Platform, an umbrella framework that integrates both Wind River Linux and the company’s VxWorks RTOS. The Helix Platform provides an integrated edge compute platform for applications ranging from industrial infrastructure to autonomous driving.

Helix Platform uses Wind River Hypervisor to enable time and space partitioning that leverages RTOS and virtualization technology, safety functionality, and COTS certification. Linux, VxWorks, and even third-party OSes such as Windows and Android can coexist together on multi-processor and multi-core systems, all orchestrated by the common Helix Cloud platform.

MontaVista unveils CGX 2.6


Finally, MontaVista has announced version 2.6 of its MontaVista Carrier Grade eXpress (CGX), the 12th generation of its Carrier Grade Linux certified distribution. Like Wind River Linux and the original MEL, CGX is a commercial embedded distro based on Yocto Project code and aimed at industrial and networking customers.

Due for release in mid-2019 with BSPs for x86 and ARMv8, MontaVista CGX 2.6 is based on Yocto 2.6, Linux kernel 4.19, and GCC 8.2 toolchain. Highlights include improved security features such as OpenSSL FIPS, OPTEE/Trustzone, Secure Boot, and SWUpdate.

CGX 2.6 provides protocol support for BLE, 4G/LTE, Zigbee, LoRA, CANbus, Modbus, and Profibus. Cloud support has been updated with APIs for the latest Amazon AWS IoT, Microsoft Azure IoT, Google Cloud IoT, and ARM mBed Client. Naturally, Kubernetes is also supported.

MontaVista was instrumental in the early development of embedded Linux, was owned by networking chip maker Cavium for several years before being spun back out as an independent company when Marvell acquired Cavium. Like its old rival Wind River, MontaVista is once again unhitched and ready for action.

Print this item

  News - Wonder Boy Returns Is Getting Remixed For Switch Release
Posted by: xSicKxBot - 03-09-2019, 03:08 AM - Forum: Nintendo Discussion - No Replies

Wonder Boy Returns Is Getting Remixed For Switch Release


After years of inactivity, the Wonder Boy franchise is enjoying something of a resurgence thanks to the release of Wonder Boy: The Dragon’s Trap and Monster Boy, the latter being a kind of spiritual sequel. However, it’s not the only Wonder Boy-themed release we’ve seen in recent years; the PC and PS4-based Wonder Boy Returns hit the market in 2016.

Now, thanks to a listing on the Korean Game Ratings and Administration Committee, we can be pretty sure that the game will be making the leap over to Switch in the near future.

As the title suggests, this is a remake of the original game with improved visuals, but it was met with a rather lukewarm reception at launch due to the iffy controls, lacklustre animation and general lack of polish.

The ‘Remix’ at the end of the title would suggest that Switch owners might benefit from some additional content, but what shape that might take is anyone’s guess.

Print this item

  Fedora - JDK Mission Control is now in Fedora 29
Posted by: xSicKxBot - 03-09-2019, 03:08 AM - Forum: Linux, FreeBSD, and Unix types - Replies (1)

JDK Mission Control is now in Fedora 29

JDK Mission Control (JMC) is now available as a module in Fedora 29. JDK Mission Control is a powerful profiling application for HotSpot JVMs. It has an advanced set of tools that enables efficient and detailed analysis of the extensive data collected by JDK Flight Recorder (JFR). JMC requires JDK 8 or later.

JFR is part of the JVM, and is available in OpenJDK 11 or Oracle JDK 7u4 or later. Therefore, to generate a flight recording to be loaded into JMC for analysis, the target application needs to run on OpenJDK 11 or OracleJDK 7u4 or later.

This article is a guide to install and run JMC on Fedora 29 Workstation. Then you’ll learn how to use it to solve a common problem with Java programs called hot methods.

Installing JMC on Fedora 29


Using Java 11 will allow JMC to record JFR data for itself. Install Java 11 via:

$ sudo dnf install java-11-openjdk

Enable and install the JMC module with the default profile via:

$ sudo dnf module install jmc:latest/default

Run JMC targeting the Java 11 JRE via:

$ jmc -vm /usr/lib/jvm/jre-11/bin

Using JMC and JFR to explore hot methods


JDK Mission Control can be used to deeply analyze Java applications. In this example, we will take a look at hot methods. Hot methods are methods where a high proportion of time is spent during execution. These are good places to start investigating when trying to reduce overall execution time.

To demonstrate, here is a portion of code for a Java application.

Initiator Sample Code

In practice, there are multiple methods of analyzing Java applications in JDK Mission Control. As an example, you can run the application with Flight Recording enabled and set to dump on JVM exit. This generates a Flight Recording (.jfr) file when the application exits, which can be opened by JDK Mission Control. Note that Flight Recorder is available in OpenJDK 11+ and OracleJDK 7u4+.

For example, for OpenJDK 11+ use this command to run the class with Flight Recorder:

$ java -XX:+FlightRecorder -XX:StartFlightRecording=dumponexit=true,filename=initiator.jfr Initiator

After the application has completed execution, open the resulting Flight Recording with JMC. Below is the automated analysis results.

Automated Analysis Results

The automated Method Profiling analysis already indicates a potential optimization area in the calls to Integer.equals(Object). Going to the Method Profiling tab, select that method and check the Stack Trace for it as shown below.

Method Profiling View

In this Stack Trace, you can follow the calls to the method Initiator.countIntersection(Initiator). Checking the Initiator class, shown below, note that counting intersections between two Integer collections would be better done using HashSet collections instead of LinkedLists collections.

The Before and After Code

After making this change, you can see the execution improve in the follow-up Flight Recording.

Method Profiling View of ‘After’ Code

JDK Mission Control and JDK Flight Recorder gives you a highly detailed view of your Java application behavior. You can use it to diagnose issues with hot methods, deadlocks, lock contention, memory leaks and more. Try it out via the JMC module in Fedora 29!

Print this item

  Microsoft - Encouraging girls to stay in STEM and #MakeWhatsNext
Posted by: xSicKxBot - 03-09-2019, 03:08 AM - Forum: Windows - No Replies

Encouraging girls to stay in STEM and #MakeWhatsNext

Two girls at computer
Girls program together at a Boys & Girls Club in Menasha, Wisconsin.

As the head of Microsoft Philanthropies and the first female attorney hired at Microsoft, I’ve experienced firsthand the amazing potential for change when girls and women are empowered to create and innovate.

Take Aishwarya Manoharan, a student of computer science and informatics at the University of Washington. When Aishwarya was growing up, she didn’t know exactly what she wanted to do, but she was fairly certain her future wouldn’t revolve around computers. It’s no wonder: She thought that working with computers was for men, and computer science meant sitting in front of a laptop typing code by yourself – not exactly an appealing prospect for this outgoing young woman, who also plays tennis and loves to bake.

College student Aishwarya Manoharan
“My burning drive is to somehow change the world for the better, whether it is small or big,” says Aishwarya Manoharan. “If I can help even one person realize their potential to better the world through the medium of technology, information and computer science, then I have reached my goal.”

But when Aishwarya took the Microsoft TEALS AP Computer Science class her junior year of high school, she realized her image of programming was wrong when she saw other girls getting excited about computer science. That was when Aishwarya met her volunteer teachers, including Arti Gupta, a software development engineer at Microsoft, who became Aishwarya’s mentor. The confidence Aishwarya gained from TEALS (Technology Education and Literacy in Schools), and especially Arti’s support, has helped Aishwarya when she feels like she doesn’t belong in her university classes that are overwhelmingly male and Caucasian. She says, “Remembering Ms. Gupta’s belief in me reminds me that I’m in the right place.”

Computing and technology hold the promise of opportunity for so many girls. And, while progress has been made to get more girls introduced, supported and successful in computer science from kindergarten to career, we still have work to do. The path to a computing-related career needs to be inclusive and provide the right support at the right times, so that girls and women feel encouraged and welcomed. Collectively, our companies, products and innovations will suffer without the perspective that girls and women bring – technologies will inevitably emerge with unintentional bias and limited insight into the diversity of people who will use and depend on them.

Today, girls and students of color represent 65 percent of the entire U.S. population, yet only 28 percent of high school students who take the AP Computer Science exam are girls, and only 22 percent are students of color. The reasons girls lose interest in STEM (science, technology, engineering and math) and computer science are many: from a lack of role models and support, to a general misperception of what STEM careers look like in the real world, and how these skills can help unlock their wildest ambitions. Without more female influence in STEM fields, we risk having hundreds of thousands of jobs left unfilled, not to mention half of our talent left untapped.

This is why it is urgent that computer science education be more inclusive. We need to show girls, and all students from diverse backgrounds, that they, too, can embrace the art and creativity of computers and be the builders, inventors, problem-solvers and computer scientists solving tomorrow’s challenges. This requires us all to take action:

  • Make computer science count. This policy is the single biggest way to help computer science reach more girls. Since 2013, when Microsoft began its work with Code.org’s Advocacy Coalition, the number of U.S. states that have made computer science count toward required credits in math or science for high school graduation has grown from nine to 45. Montana became the latest state this week.
  • Provide access to female role models with diverse backgrounds. Many female Microsoft employees volunteer for our DigiGirlz program, designed to introduce girls to the career opportunities available in technology fields. To date, we have offered more than 54,000 girls the opportunity to explore and become active thinkers, creators and doers in STEM.
  • Focus on access and inclusion. We do this by partnering with local nonprofits to bring culturally relevant approaches to computer science to local communities. In the U.S., more than 1,400 tech professionals volunteer with TEALS in schools, serving 16,000 students, 33 percent of whom are young women. Abroad, groups like Shared Path in Australia brings tailored digital skills training to indigenous Australians, and Laboratoria in Latin America, a female-led organization which has trained over 1,000 young women to become web developers and designers by mimicking actual work scenarios.

Today on International Women’s Day, join us by taking action and help inspire the next generation of girls to stay in STEM and #MakeWhatsNext:

  • By taking these steps and joining in collective action, we can create a more inclusive computer science pipeline for women, provider greater access to economic opportunities for people of all backgrounds, and drive more innovation, starting today.

Tags: , , ,

Print this item

  Migrating your existing on-prem SQL Server database to Azure SQL DB
Posted by: xSicKxBot - 03-09-2019, 03:08 AM - Forum: C#, Visual Basic, & .Net Frameworks - No Replies

Migrating your existing on-prem SQL Server database to Azure SQL DB

If you are in the process of moving an existing .NET application to Azure, it’s likely you’ll have to migrate an existing, on-prem SQL database as well. There are a few different ways you can go about this, so let’s go through them.

Data Migration Assistant (downtime required)


The Data Migration Assistant (download | documentation) is free, easy to use, slick and extremely powerful! It can:

  • Evaluate if your database is ready to migrate and produce a readiness report (command line support included)
  • Provide recommendations for how to remediate migration blocking issues
  • Recommend the minimum Azure SQL Database SKU based on performance counter data of your existing database
  • Perform the actual migration of schema, data and objects (server roles, logins, etc.)

After a successful migration, applications will be able to connect to the target SQL server databases seamlessly. There are currently a couple of limitations, but the majority of databases shouldn’t be impacted. If this sounds interesting, check out the full tutorials on how to migrate to Azure SQL DB and how to migrate to Azure SQL DB Managed Instance.


Azure Data Migration Service (no downtime required)


The Azure Data Migration Service allows you to move your on-prem database to Azure without taking it offline during the migration. Applications can keep on running while the migration is taking place. Once the database in Azure is ready you can switch your applications over immediately.

If this sounds interesting, check out the full tutorials on how to migrate to Azure SQL DB and how to migrate to Azure SQL DB Managed Instance without downtime.


SQL Server Management Studio (downtime required)


You are probably already familiar with SQL Server Management Studio (download | documentation), but if you are not it’s basically an IDE for SQL Server built on top of the Visual Studio shell and it’s free! Unlike the Data Migration Assistant, it cannot produce readiness reports nor can it suggest remediating actions, but it can perform the actual migration two different ways.

The first way is by selecting the command “Deploy Database to Microsoft Azure SQL Database…” which will bring up the migration wizard to take you through the process step by step:

The second way is by exporting the existing, on-prem database as a .bacpac file (docs to help with that) and then importing the .backpac file into Azure:


Resolving database migration compatibility issues


There are a wide variety of compatibility issues that you might encounter, depending both on the version of SQL Server in the source database and the complexity of the database you are migrating. Use the following resources, in addition to a targeted Internet search using your search engine of choices:

In addition to searching the Internet and using these resources, use the MSDN SQL Server community forums or StackOverflow. If you have any questions or problems just leave us a comment below.

Print this item

  Mobile - The Weekender: Burgundian Edition
Posted by: xSicKxBot - 03-09-2019, 03:08 AM - Forum: New Game Releases - No Replies

The Weekender: Burgundian Edition

Feels like its been a decent week, overall – we reviewed Gem Rush, Knights of the Card Table and Wars Across the World next week, also excellent additions to their respective genres. Content wise we’re a bit a of a crossroads as, apart from just making sure we review things and certain things like our Guides stuff, we’re unsure what else would be of use to the mobile audience.

Mobile gaming in general is changing, and it’s important we try and adapt with it  – what form that takes though, is something we’re looking to experiment with – if you have any thoughts or suggestions, do let us know.

Meanwhile, in mobile gaming…

Out Now


Castles of Burgundy (iOS & Android) – Full Review Coming Soon


Ideally, we’d already have a review of this live by now, but unfortunately, we got our code a bit last in the day. No matter – Matt’s on the case, and we’ll bring out our full thoughts as soon as we can. Castles of Burgundy is an iconic Euro-style boardgame where players must compete to develop the best holdings in 15th Century Europe. It uses a basic dice mechanic, and there are many routes to victory – the winner is the player who gets the most victory points.

The app sports plenty of features we like to see in digital ports: varying AI difficulty for solo, cross-platform multiplayer, asynchronous and hot-seat options a tutorial and plenty of language options. At $8.99 its at the higher end of the price spectrum, up there with Terra Mystica, but DIGIDICED are a known quantity in digital boardgames, so you can be sure it’ll be worth the price.


Card Crusade (iOS & Android) – Full Review Coming soon


After a two-month stint in early access, this rogue-like deck building game is now out in the wild. It lists Slay the Spire and Pixel Dungeon as inspiration and features retro graphics. We didn’t get a chance to test this one out before today’s write-up, but the game features eight different classes, & ten floors to explore. Changes from the early access version include 20 new cards, balancing to the final three floors, a better scoring system and changes to how Altars work. We’ll bring you our full review as soon as we can.


Updates


Shieldwall Chronicle (iOS Universal)


Our review for this is still incoming, but while we wait the game’s already been updated to fix some high priority bugs. Namely, stability & performance issues a number of 2GB and 3GB devices have been settled. Along with our review, we’ll be doing a code giveaway sometime next week, so stay tuned!

Kingdom Rush: Vengeance (iOS & Android) (Review)


Everyone’s favourite controversial Tower-Defense RTS received a free content update the other day. The Subaquatic Menace takes you three new stages, where you must help Vez’nan defeat King Polxy and his subaquatic army. Plenty of new content, including new enemies, a new hero and a new tower.

——

Also, some of you may have noticed that the PC version of Armello received a big ‘2.0’ updated this week. I reached out to the developers regarding whether or not the update would be coming to the mobile version, and here is what they had to say:

“We would like to, though we are genuinely unsure at this time. The mobile version of Armello is an interesting beast and is very different to develop for. Crunching Armello down into those little devices is a feat that we don’t know that we can undertake for v2.0, and some of the core features, such as many of the menu overhauls, wouldn’t translate seamlessly.

We’re going to evaluate our options and let you know when we can.”

Sales


Reigns: Game of Thrones (Review) (iOS & Android): $2.99 on iOS


The undisputed best version of Reigns is on sales again, so if you’ve yet to pick it up now might be a good time. Fair warning though – it was cheaper over Christmas, so might be worth waiting for a bigger sales event.

Beholder (Review) (iOS & Android): $2.99


Dark and characterful narrative game Beholder is half price, if you fancy challenging yourself with some really horrible moral decisions.

Out There: Omega Edition (Review) (iOS & Android)


One of our favourite games of yesteryear – 2014’s Out There, is now selling its ‘Omega’ edition for just a dollar. This is an excellent strategy/rpg game from Mi-Clos, and one every mobile gamer should experience.

Seen anything else you like? Played any of the above? Let us know in the comments!

Print this item

  Vectary 3.0 Released
Posted by: xSicKxBot - 03-09-2019, 03:08 AM - Forum: Game Development - No Replies

Vectary 3.0 Released

Vectary is an online 3D application we covered late last year.  Since that video, Vectary 3.0 has been released with several UI changes, new features and massive changes to their subscription model.  The primary new features of Vectary 3.0 include:

  • An Updated and streamlined user interface
  • New getting started tutorial
  • New deformers (Symmetry, Bend, Array, Boolean, Twist, Stretch, Spherify)
  • New parametric primitive generation.
  • Dark mode option

You can read more about the new features in the Vectary blog.  Perhaps the biggest change to Vectary is the new subscriptions, which are both more limited in the free form and vastly cheaper for the Premium plan.  Details of the new subscription tiers:

image

GameDev News


Print this item

  All about {Curly Braces} in Bash
Posted by: xSicKxBot - 03-08-2019, 09:44 PM - Forum: Linux, FreeBSD, and Unix types - No Replies

All about {Curly Braces} in Bash

At this stage of our Bash basics series, it would be hard not to see some crossover between topics. For example, you have already seen a lot of brackets in the examples we have shown over the past several weeks, but the focus has been elsewhere.

For the next phase of the series, we’ll take a closer look at brackets, curly, curvy, or straight, how to use them, and what they do depending on where you use them. We will also tackle other ways of enclosing things, like when to use quotes, double-quotes, and backquotes.

This week, we’re looking at curly brackets or braces: {}.

Array Builder


You have already encountered curly brackets before in The Meaning of Dot. There, the focus was on the use of the dot/period (.), but using braces to build a sequence was equally important.

As we saw then:

 echo {0..10}

prints out the numbers from 0 to 10. Using:

 echo {10..0}

prints out the same numbers, but in reverse order. And,

 echo {10..0..2}

prints every second number, starting with 10 and making its way backwards to 0.

Then,

 echo {z..a..2}

prints every second letter, starting with z and working its way backwards until a.

And so on and so forth.

Another thing you can do is combine two or more sequences:

 echo {a..z}{a..z}

This prints out all the two letter combinations of the alphabet, from aa to zz.

Is this useful? Well, actually it is. You see, arrays in Bash are defined by putting elements between parenthesis () and separating each element using a space, like this:

 month=("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")

To access an element within the array, you use its index within brackets []:

 $ echo ${month[3]} # Array indexes start at [0], so [3] points to the fourth item Apr

You can accept all those brackets, parentheses, and braces on faith for a moment. We’ll talk about them presently.

Notice that, all things being equal, you can create an array with something like this:

 letter_combos=({a..z}{a..z})

and letter_combos points to an array that contains all the 2-letter combinations of the entire alphabet.

You can also do this:

 dec2bin=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}) 

This last one is particularly interesting because dec2bin now contains all the binary numbers for an 8-bit register, in ascending order, starting with 00000000, 00000001, 00000010, etc., until reaching 11111111. You can use this to build yourself an 8-bit decimal-to-binary converter. Say you want to know what 25 is in binary. You can do this:

 $ echo ${dec2bin[25]} 00011001

Yes, there are better ways of converting decimal to binary as we saw in the article where we discussed & as a logical operator, but it is still interesting, right?

Parameter expansion


Getting back to

 echo ${month[3]}

Here the braces {} are not being used as apart of a sequence builder, but as a way of generating parameter expansion. Parameter expansion involves what it says on the box: it takes the variable or expression within the braces and expands it to whatever it represents.

In this case, month is the array we defined earlier, that is:

 month=("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")

And, item 3 within the array points to "Apr" (remember: the first index in an array in Bash is [0]). That means that echo ${month[3]}, after the expansion, translates to echo "Apr".

Interpreting a variable as its value is one way of expanding it, but there are a few more you can leverage. You can use parameter expansion to manipulate what you read from variable, say, by cutting a chunk off the end.

Suppose you have a variable like:

 a="Too longgg"

The command:

 echo ${a%gg}

chops off the last two gs and prints “Too long“.

Breaking this down,

  • ${...} tells the shell to expand whatever is inside it
  • a is the variable you are working with
  • % tells the shell you want to chop something off the end of the expanded variable (“Too longgg”)
  • and gg is what you want to chop off.

This can be useful for converting files from one format to another. Allow me to explain with a slight digression:

ImageMagick is a set of command line tools that lets you manipulate and modify images. One of its most useful tools ImageMagick comes with is convert. In its simplest form convert allows you to, given an image in a certain format, make a copy of it in another format.

The following command takes a JPEG image called image.jpg and creates a PNG copy called image.png:

 convert image.jpg image.png

ImageMagick is often pre-installed on most Linux distros. If you can’t find it, look for it in your distro’s software manager.

Okay, end of digression. On to the example:

With variable expansion, you can do the same as shown above like this:

 i=image.jpg convert $i ${i%jpg}png

What you are doing here is chopping off the extension jpg from i and then adding png, making the command convert image.jpg image.png.

You may be wondering how this is more useful than just writing in the name of the file. Well, when you have a directory containing hundreds of JPEG images, you need to convert to PNG, run the following in it:

 for i in *.jpg; do convert $i ${i%jpg}png; done 

… and, hey presto! All the pictures get converted automatically.

If you need to chop off a chunk from the beginning of a variable, instead of %, use #:

 $ a="Hello World!" $ echo Goodbye${a#Hello} Goodbye World!

There’s quite a bit more to parameter expansion, but a lot of it makes sense only when you are writing scripts. We’ll explore more on that topic later in this series.

Output Grouping


Meanwhile, let’s finish up with something simple: you can also use { ... } to group the output from several commands into one big blob. The command:

 echo "I found all these PNGs:"; find . -iname "*.png"; echo "Within this bunch of files:"; ls > PNGs.txt

will execute all the commands but will only copy into the PNGs.txt file the output from the last ls command in the list. However, doing

 { echo "I found all these PNGs:"; find . -iname "*.png"; echo "Within this bunch of files:"; ls; } > PNGs.txt

creates the file PNGs.txt with everything, starting with the line “I found all these PNGs:“, then the list of PNG files returned by find, then the line “Within this bunch of files:” and finishing up with the complete list of files and directories within the current directory.

Notice that there is space between the braces and the commands enclosed within them. That’s because { and } are reserved words here, commands built into the shell. They would roughly translate to “group the outputs of all these commands together” in plain English.

Also notice that the list of commands has to end with a semicolon (;) or the whole thing will bork.

Next Time


In our next installment, we’ll be looking at more things that enclose other things, but of different shapes. Until then, have fun!

Read more:

And, Ampersand, and & in Linux

Ampersands and File Descriptors in Bash

Logical & in Bash

Print this item