Bash ca shell principal in FreeBSD

Inlocuirea shell-ului default din FreeBSD se face cu ajutorul comenzii chsh.

Daca rulam efectiv comanda chsh in terminal se deschide cu editorul de text un fisier in care gasim (pe la linia 10) SHELL:” aici putem modifica locatia shell-ului cu cel nou. Pentru bash locatia este /usr/local/bin/bash

Continue reading

Share Button

Extindere kernel FreeBSD cu Loadable Kernel Modules

LKM = Loadable Kernel Modules, KLD = Dynamic Kernel Linker Facility


Exista doua tipuri de kernel: monolithic si micro

Am avut nevoie de extinderea kernelului asa ca am folosit un monolithic (acesta fiind un kernel modular – permite incarcarea functionalitatilor noi in timp real) si nu un micro (kernel care trebuie compilat la fiecare modificare)

Pentru a scrie un modul de kernel BSD am avut nevoie de FreeBSD, versiunea amd64 (suport x86 si x64 atat pe intel cat si pe amd) si NU versiunea i386 (se refera la procesoarele Intel 386), instalata intr-o masina virtuala. Continue reading

Share Button

DateFormatter în Swift

Am avut nevoie în zilele acestea de mai multe informații despre DateFormater – modalitatea prin care pot “pregăti” un Date pentru a fi afișat.
Am găsit o resursă foarte tare care-mi permite practic să formatez date-ul asa cum imi doresc – http://nsdateformatter.com/.
Foarte tare partea aia de localizare.

P.S. Vin cu o extensie la Date pentru a verifica dacă Date-ul conține ziua de azi

extension Date {
func isToday() -> Bool {
return Calendar.current.isDateInToday(self)
}
}

Share Button

Core Data – Swift 3

Voiam sa fac un articol detaliat despre cum pot folosi Core Data in Swift3. Plecand de la acest articol unde este explicat motivul pentru care a fost introdus NSPersistentContainer in IOS 10, am ajuns la un material care explica extraordinar cat de versatila este utilizarea Core Data in IOS 10 si Swift 3.




Ca si observatie, pentru a nu aparea surprize atunci cand este folosit numele clasei in atributul forEntityName
let student:Student = NSEntityDescription.insertNewObject(forEntityName: "Student", into: DatabaseController.getContext()) as! Student
este recomandata definirea numelor claselor astfel:
let studentClassName:String = String(describing: Student.self)
let courseClassName:String = String(describing: Course.self)

Observatia este facuta la minutul 51:50.

Share Button

SQLite – Swift3

Ca si solutie de persistenta, pe langa Core Data si NSUserDefault, IOS utilizaza SQLite. Nu insist pe povesti despre SQLite, insa fiind disponibil si pe Android, am considerat oportuna folosirea lui.
Pe Swift, pentru a folosi SQLite e nevoie de un wrapper, o aplicatie de background care sa parseze cererile din aplicatie catre SQLite.
Solutii disponibile in acest sens: FMDB sau SQLite Swift.
Pentru un cod suplu al aplicatiei este de recomandat construirea unui wrapper propriu, de fapt a unui set de functii care vor apela comenzi SQL.
Cum folosim SQLite in Swift?

1. In General Setting specificam faptul ca vom lega libsqlite3.tbd la aplicatie.


2. Adaugam un header file la proiect care va permite bridging catre API-ul C al lui SQLite. Numim de exemplu BridgingHeader.h acest header file si includem in el
#include

3. In Build Settings specificam faptul ca vom folosi acest bridge. Pentru aceasta, adaugam in sectiunea “Objective-C Bridging Header” header file pe care l-am generat la pasul 2.



4. Aplicatia noastra este pregatita in acest moment pentru a folosi SQLite.

In urmatorul post voi detalia calea prin care voi defini modelul pe care il voi folosi pentru a putea “executa” comenzi SQL

Share Button