Richard Farina has announced the availability of the “3.7th” release candidate for Pentoo 2015.0, a Gentoo-based live DVD with a collection of utilities designed for penetration testing and forensic analysis: “This RC is the follow-up to the fixes and improvements in RC3.6, plus some other exciting stuff…”
5 Open Source Projects to Join in 2015

You’ve been using open source software for a while, and now you want to give back to the community. Even with solid advice, you’re probably finding that it’s difficult to sift through all of the projects out there to find one that’s right for you.
To help, I’ve put together a list of five open source projects that you should consider joining in 2015. Many of them may not be the highest profile projects out there, but they do offer some interesting challenges. And helping them is a great way to give back to the community.
Ready? Let’s jump in!
You don’t know JS until you’ve learned all of it
If you are going to learn something new, don’t scim through it. Learn everything you can about the subject hard and easy. Once you fully understand the subject you can elevate that knowledge to higher levels. Never be picky when it comes to learning. You might not realize what you overlooked was cricial to learn.
I was studying a transcript of an interview between Remy DeCausemaker an open source research coordinator and Kyle Simpson an open web evangelist who strongly uses and teaches JavaScript. He is the author of a book series called “You don’t know JS”. Simpson states that those who’ve learned JavaScript learned it incompletely and improperly.
“I’m an open web evangelist who teaches JavaScript for a living. I work with developers all the time who’ve learned JS incompletely and improperly, and they’re having to fight hard against the grain to re-learn it” (Kyle Simpson).
“I believe JavaScript takes time to learn properly and completely, and that if you’re going to write it, then you should invest that effort. You should understand why the code that you write works the way that it works” (Kyle Simpson).
What he could be suggesting is that JS developers learn only enough about JS to enable them to work with the language but not to fully master it. In otherwords, they learn only what is needed to complete a task.
He makes another strong statement regarding what his book series attempts to do. “My books are the opposite. They’re the anti-“The Good Parts.” That doesn’t mean they’re the bad parts, it means they’re all the parts. Rather than avoiding most of the language because one guy said to—rather than running away from the hard parts—I encourage you to run towards “the tough parts” and learn them” (Kyle Simpson).
The reason this article stood out to me relates to the approach I am using when it comes to editing text files on my Debian and Mint based Linux systems. I have developed a habit of learning why my changes worked beyond the fact that they do work. I must know everything about every piece of code, character, comment, spacing, everything. I must know the meaning of the code. However, the more I want to learn, the longer it takes me to move on to the next code. I felt time was not on my side. I had to learn fast. According to Kyle Simpson, this was not the way to learn.
“When you see something in JS that you don’t understand or is confusing, instead of blaming the language as being poorly designed, turn your attention toward your own lack of understanding, and spend the effort to increase your understanding” (Kyle Simpson).
Kyle is saying that it is a must to spend the effort that is required to learn that which is hard. Do not run away from it but to face it. Spend as much time as it takes to understand it. Perhaps the beauty of acquiring skill is not how quickly you were able to gain it but how long it took you to gain it.
I can go on, but what I am concluding is that perhaps great wonders lie in what seems too difficult to handle. Really give it your all in any area of expertise. Let all the knowledge poor in. It might take a long time to master it. That is ok. The more time I spent operating my Linux systems through the terminal, the better and more confident I became at it. I am not looking to compete with anyone. My goal is to learn all I can about it. Whatever you are learning, JS, bash scripting, PHP, Linux, take as much time as you need to learn it from top to bottom. This is hard enough.
References:
Remy DeCausemaker(2014). You don’t know JS, but you should.http://opensource.com/life/14/11/talk-kyle-simpson-javascript-expert
GCC Soars Past 14.5 Million Lines Of Code & I’m Real Excited For GCC 5
If you thought LLVM/Clang with just under four million lines was a huge code-base for a compiler as the entire Linux kernel is over 19 million lines, just wait until you see the current size of GCC…
More Patches Published For AMD’s RadeonSI Gallium3D Driver
For those getting back into Mesa/Gallium3D driver testing from Git following the holidays, Marek Olšák published another big set of patches this weekend…
How to Deduplicate Files on Linux With dupeGuru
Recently, I was given the task to clean up my father’s files and folders. What made it difficult was the abnormal amount of duplicate files with incorrect names. By keeping a backup on an external drive, simultaneously editing multiple versions of the same file, or even changing the directory structure, the same file can get […]
Nvidia Announces Drive CX, ‘The Most Advanced Digital Cockpit Computer in the World’
![]()
“There’ll be more computing horsepower inside a car than anything you currently own today.” That’s the assertion Nvidia CEO Jen-Hsun Huang made in announcing Drive CX, “the most advanced digital cockpit computer in the world.” The platform, powered by Maxwell, supports “every major OS in the world” — QNX, Linux, and Android.
Getting started with the SaltStack
I came across Salt while searching for an alternative to Puppet. I like puppet, but I am falling in love with Salt :). This maybe a personal opinion but I found Salt easier to configure and get started with as compared to Puppet. Another reason I like Salt is that it let’s you manage your server configurations from the command line, for example:
To update all your servers with Salt, just run
salt ‘*’ pkg.upgrade
Installing the SaltStack on Linux.
Acer Chromebook 15: A First Look at the Biggest Chromebook on Earth
Acer kicked off its CES yesterday by announcing the $249 Chromebook 15, a new Chromebook laptop that — for now at least — is the biggest one you can buy. We just got our hands on it here in Las Vegas, and even at a glance it looks like there’s fierce new competitor in the Chromebook market.
First and foremost, it’s built really well. The laptop has a very solid feel but is still light enough to comfortably carry in one hand, even lighter than other, smaller Chromebooks. The black plastic doesn’t feel as cheap as the plastic found making up competing models, either. There’s a nice mesh-style pattern on the back of it, which helps it stand out without being as aggressive as what’s found on the Toshiba Chromebook 2 or flashy as on S…
Can we boilerplate software architecture?
I have been programming for 12 years commercially now since I was 18 years old and fresh out of college, however I have been programming just for the love of it for close to 20 years.
In the early days I would describe myself as a “furious coder”. I could produce 3,000 lines of code each day (sustained for years), whilst producing slightly less bugs than my colleagues.
After a year or so I noticed that logical separation of code was really important. So I created tiers (usually separated by process) so presentation, business/domain logic (BL), and data access (DAL) were all isolated.
Soon after I realised that separating logic was really really important. So started separating logic not just by tier but by integration (interoperability with remote systems) and implementation (project/customer logic). This created some pretty agile results that responded well to change.
Finally, I started reading about the SOLID design principals and my whole outlook on programming changed forever. I soon realised how hard software architecture actually was. By coding furiously, the “architecture” of each solution was incidental; areas such as exception handling, damage control and overall object responsibility were a constant challenge that I fought daily. I’d often “fix” a bug, only to find that actually all I’d done is push it into another “responsibility realm”.
From then on I started working as Product Director at a security software company (near London, England). My personal focus has since been achieving the best possible software architecture, which could be reused elsewhere (read anywhere). The main challenge for the company was that we had a single software product that spanned retail, government, healthcare and financial verticals – a product that needed to be everything to everyone; for that modularity and the ability to quickly implement new integration code and implementation logic (even logic that conflicted between customers) was a necessity. At this point another separation was key: customer implementation logic needed to be kept separate, especially the parts that customers owned the rights to. Also, modules could then be sold off or made exclusive to a partner, without compromising the product itself.
I realise that there is not always a “one size fits all” for software solutions, but I do believe that all software solutions share similar requirements. They all need:
- Isolated, configurable “modules” separating tiers, responsibility and customer-specific logic
- Cross-cutting “aspects” such as logging, error handling, debugging aids (eg. performance counters)
- A sensible approach to exception handling, including damage control
- The ability to easily change the behaviour of components once the solution is deployed using dependency injection
- A way of communicating between modules (M2M) even though modules are highly isolated
- A way of keeping track of dependencies and a method of avoiding the entourage anti-pattern
- Configurable workflow logic that defined the movement of data between logical tiers
- A decision engine that allowed complex rules to be created, affecting the flow of data between modules
To that end, I believe there is probably a way to create a boilerplate architecture that will fit most software projects and I think I am pretty close to achieving the first iteration of this design. This would be platform, framework and even language agnostic.
Most have spent their energies developing new languages, runtimes, IDEs, and frameworks to make new and seasoned programmer’s lives simpler. Agile is a method used to help design and deliver software solutions, but there doesn’t seem to be many projects/principals offering a definitive, practical software architecture boilerplate design that programmers can pick up and run with.
Software architecture is something I find of great interest and as I move into a more senior, management role this is where I am keen to leave a legacy for the next programmers.
Would you agree that creating a boilerplate software architecture design that could be downloaded and used within minutes would be of use to the programming community? Utilizing many other seasoned programmer’s experience (not just my own) all into a single design?
It obviously wouldn’t fit all situations, but I think that catering for the 80%ile would be ambitious but possible.
Something that enforced modularity, AOP, and most importantly: good logical separation of tiers and responsibilities out of the box.
Eventually, boilerplates for various languages/frameworks could be made available, freely for programmers to download and start programming in their chosen language within minutes, possibly even a “module store”, providing integration with remote services or the Internet of Things (ITT), enabling separation between integration and implementation logic.
I’d be really interested in hearing your feedback in the comments below.